0

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

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

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

“在一个字段被标记为无效之前,验证是懒惰的:在第一次提交表单之前,用户可以在字段之间切换而不会收到烦人的消息——在他有机会实际输入正确的信息之前,他不会被窃听价值”

但这似乎不会发生在电子邮件字段中。

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

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

4

2 回答 2

0

此行为已在 github 上的最新 jquery-validate.js中修复。该错误被报告为

'当文本在字段中时,电子邮件验证立即触发'

错误报告和讨论在这里

于 2013-01-28T15:55:06.423 回答
0

“在一个字段被标记为无效之前,验证是懒惰的:在第一次提交表单之前,用户可以在字段之间切换而不会收到烦人的消息——在他有机会实际输入正确的信息之前,他不会被窃听价值”

但这似乎不会发生在电子邮件字段中。

这不仅仅是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
});

使用上述方法,所有onkeyup验证都会被忽略,直到第一次提交表单,或者直到用户跳出包含输入数据的字段。

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

于 2013-01-28T16:13:28.767 回答