根本无法理解这一点。 使用validate jQuery(1.6.2)和validate plugin(1.8.1)。 如果单击提交按钮,请使用以下invalidHandler代码在所有浏览器中正常工作。 但是,如果在填写任何字段后输入键盘,在Firefox(无论如何是版本5和6)中提交表单,您将获得有关错误数量的警报,但表单仍然会提交! 表单不在其他浏览器中提交,如果删除警报行,它在Firefox中可以正常工作。但是我们需要提醒,所以如果有人对如何解决这个问题有任何想法,那么非常赞赏 - 我不习惯只在Firefox中表现的事情! :)
invalidHandler: function(form, validator) {
var errors = validator.numberOfInvalids();
if (errors)
{
var message = (errors == 1)
? '1 field has an error. It has been highlighted'
: errors + ' fields have errors. They have been highlighted';
alert(message);
//return false;
}
}
答案 0 :(得分:0)
您是否尝试取消注释return false
?
JQuery documentation表示false
将:
...通过在事件上调用.preventDefault()取消提交操作 对象或从我们的处理程序返回false。
答案 1 :(得分:0)
我也遇到过这个问题。我认为正在进行的是调用alert()会阻止执行invalidHandler函数,这会打破jQuery.validate通常运行的方式。
你可以做的是通过setTimeout调用启动一个警告窗口,它不会阻止你的invalidHandler代码的执行:
setTimeout('alert("'+message+'")', 1)
Hacky,但有效!