3 回答
TA贡献1807条经验 获得超9个赞
只需处理Submit事件中的表单提交,然后返回false:
$('#contactForm').submit(function () {
sendContactForm();
return false;
});
您不再需要提交按钮上的onclick事件:
<input class="submit" type="submit" value="Send" />
TA贡献1818条经验 获得超8个赞
这里:
function submitClick(e)
{
e.preventDefault();
$("#messageSent").slideDown("slow");
setTimeout('$("#messageSent").slideUp();
$("#contactForm").slideUp("slow")', 2000);
}
$(document).ready(function() {
$('#contactSend').click(submitClick);
});
代替使用onClick事件,您将使用jQuery将“ click”事件处理程序绑定到jQuery的Submit按钮(或任何按钮)上,这将以commitClick作为回调。我们将事件传递给回调函数,以调用preventDefault,这将阻止单击提交表单。
TA贡献1831条经验 获得超10个赞
如果要查看显示的默认浏览器错误,例如,由HTML属性触发的错误(显示在任何客户端代码JS处理之前):
<input name="o" required="required" aria-required="true" type="text">
您应该使用submit事件而不是click事件。在这种情况下,将自动显示一个弹出窗口,要求“ 请填写此字段 ”。即使preventDefault:
$('form').on('submit', function(event) {
event.preventDefault();
my_form_treatment(this, event);
}); // -> this will show up a "Please fill out this field" pop-up before my_form_treatment
正如有人前面所提到的,return false将停止传播(即,如果有附加到表单提交更多的处理程序,他们就不会被执行),但是,在这种情况下,由浏览器触发的动作总是会首先执行。即使以a return false结尾。
因此,如果您想摆脱这些默认弹出窗口,请使用click“提交”按钮上的事件:
$('form input[type=submit]').on('click', function(event) {
event.preventDefault();
my_form_treatment(this, event);
}); // -> this will NOT show any popups related to HTML attributes
添加回答
举报