jQuery验证invalidHandler,警告仍然在Firefox中提交?

时间:2011-09-06 21:28:34

标签: jquery firefox submit validation

根本无法理解这一点。 使用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;
           }

}

2 个答案:

答案 0 :(得分:0)

您是否尝试取消注释return false

JQuery documentation表示false将:

  

...通过在事件上调用.preventDefault()取消提交操作   对象或从我们的处理程序返回false。

答案 1 :(得分:0)

我也遇到过这个问题。我认为正在进行的是调用alert()会阻止执行invalidHandler函数,这会打破jQuery.validate通常运行的方式。

你可以做的是通过setTimeout调用启动一个警告窗口,它不会阻止你的invalidHandler代码的执行:

setTimeout('alert("'+message+'")', 1)

Hacky,但有效!