$("#myForm").on('valid', function(e){
e.preventDefault();
var name = $("input#name").val();
var email = $("input#email").val();
var msg = $("textarea#message").val();
var dataString = 'name=' + name +
'&email=' + email +
'&msg=' + msg;
$.ajax({
type:"POST",
url:"php/mail.php",
data: dataString,
success: function(){
$(".contactform").html("<div id = 'thanks'></div>");
$('#thanks').html("<h2>Thanks</h2>")
.append("<p> Dear " + name + " I will contact you soon </p>")
.hide()
.fadeIn(1500);
}
});
return false;
});
我使用了在线视频教程。问题是,当我点击提交时,它会刷新页面,即使我在那里包含了返回false。但是在这里它变得奇怪......如果我从我的页面中取出Jquery,联系表单脚本可以正常工作,但是,我需要在页面中插件的Jquery功能。我也去了github,并在页面上修复了abide文件,但仍然没有运气。如果你想看看我的页面,有一些上下文,它在这里
www.siddigzeidan.com/app
提前非常感谢你!
答案 0 :(得分:3)
您的代码中的问题是,您正在对 #myForm 的有效事件做出反应,而不是对提交事件做出反应。如果你看一下 foundation.abide.js ,你会明白我的意思。
要解决您的问题,您必须将代码移至提交事件:
<强>错误:强>
$("#myForm").on('valid', function(e){
从右:强>
$("#myForm").on('submit', function(e){
还有一个很好的提示,在github上同时匹配所有三个事件有效无效提交:
$("#myForm").on("valid invalid submit", function(e){
e.stopPropagation();
e.preventDefault();
if(e.type === "valid"){
// AJAX call
}
});