=====再次更新====(如果有人在乎!)
我出于任何原因停止工作之前发布的解决方案.我在ajax请求中包含一个beforeSend,然后将验证表单的js部分粘贴到其中.现在就像魅力一样!
$('#form').on('submit', function(e) {
e.preventDefault(); //prevents page refresh
$.ajax({
type: "post",
beforeSend: function(){ // check that form is complete
},
url: "client_config_send2.PHP",
data: $(this).serialize(),
success: function(data){
alert('Thank you'); hide_request();window.location = "#top";
}
});
});
编辑
请参阅下面的答案,使用2 .preventDefault!
我已经阅读了许多页面/示例,但是由于某种原因,我无法使它在“我的”表单上运行.
我只是尝试提交表单,而不刷新页面或为确认消息打开新页面/标签.
表格:
<form id="form" name="Configurator" method="post" action="">
.... //Client configures his product, display an image if they choose, and request a quote.
<button id="submit_button" type="submit" name="Submit" >Request</button>
</form>
client_config_send2.PHP可以正常工作,它只是从表单(配置,联系信息)中提取了一堆参数,并将其放入电子邮件中.在尝试集成Ajax之前,这部分工作正常.
JS:
$('form').on('submit', function(e) {
e.preventDefault();
if(!validateForm(this)){
return true;
}
$.ajax({
type: "post",
url: "client_config_send2.PHP",
data: $(this).serialize(),
done: function(data){
alert("Thank you, we will get back to you shortly");
}
});
})
</script>
validateForm()函数也可以工作,它检查配置是否有效,电子邮件/联系信息是否完整等.
此时,validateForm起作用:如果缺少信息,则弹出警报.但是,当validateForm()返回true时,表单不提交,则什么也没有发生.
我尝试成功而不是成功,在JS中返回false而不是true,以及在网上找到的许多其他东西,但我迷路了.以前从未使用过AJAX,因此我对语言的微妙之处并不100%自信!
提前致谢!
解决方法:
“ client_config_send2.PHP”是一个文件名.您提供给Ajax的URL必须是类似http://example.com/client_config_send2.php的URL.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。