bassistance jQuery表单validation插件 – 提交前的电子邮件错误

我正在使用这个插件: http : //bassistance.de/jquery-plugins/jquery-plugin-validation/

用于JQuery表单validation。 除了电子邮件字段,一切都很好。 一旦我开始输入该字段,请输入“请输入有效的电子邮件地址”。 消息出现,即使我到目前为止输入的内容是正确的。

在文档( http://docs.jquery.com/Plugins/Validation )中,它说:

“在字段被标记为无效之前,validation是懒惰的:在第一次提交表单之前,用户可以通过字段标记而不会收到恼人的消息 – 在他有机会实际输入正确的内容之前,他不会被窃听值”

但这似乎不会发生在电子邮件领域。

这个问题也可以在作者的演示中看到: http : //jquery.bassistance.de/validate/demo/

这种行为是否有选项/解决方法?

“在字段被标记为无效之前,validation是懒惰的:在第一次提交表单之前,用户可以通过字段标记而不会收到恼人的消息 – 在他有机会实际输入正确的内容之前,他不会被窃听值”

但这似乎不会发生在电子邮件领域。

这不仅仅是email规则。 您可以在minlength规则上看到相同的行为。

http://jsfiddle.net/f3sxF/

这种行为是否有选项/解决方法?

您可以使用预发布版本,似乎解决了这个问题。 但是,您可以简单地使用onkeyup回调函数的修改版本,而不是通过在生产站点上使用插件的“预发布”版本来冒新的错误…

 $('#myform').validate({ onkeyup: function (element, event) { if (event.which === 9 && this.elementValue(element) === '') { return; } else if (element.name in this.submitted ) { this.element(element); } }, // your other options }); 

使用上述内容,所有onkeyupvalidation都将被忽略,直到第一次提交表单,或者直到用户选中包含输入数据的字段为止。

演示: http : //jsfiddle.net/wNj4n/

此行为在github上的最新jquery-validate.js中得到修复。 这个bug报告为

‘当文字在字段中时,电子邮件validation会立即触发’

错误报告和讨论在这里