jQuery验证器没有在所有更新上进行验证(或者它是正则表达式)
我正在使用jQuery验证程序验证文本字段中是否输入了正确的电子邮件地址。但是,似乎有时不会触发此验证器 情景: 用户在其电子邮件中输入“user.email.provider.com”。当他们打字时,验证器总是告诉他们电子邮件的格式不正确。它们突出显示“email”和“provider”之间的时间段,并将其更改为“@”。而电子邮件(用户)。email@provider.com)如果格式正确,错误仍然存在。如果他们在电子邮件的结尾或甚至在电子邮件的中间(U.E.email @ PvaveServer)中找到一个空格-错误就消失了。 下面是添加验证程序并使用正则表达式的代码:jQuery验证器没有在所有更新上进行验证(或者它是正则表达式),jquery,regex,validation,Jquery,Regex,Validation,我正在使用jQuery验证程序验证文本字段中是否输入了正确的电子邮件地址。但是,似乎有时不会触发此验证器 情景: 用户在其电子邮件中输入“user.email.provider.com”。当他们打字时,验证器总是告诉他们电子邮件的格式不正确。它们突出显示“email”和“provider”之间的时间段,并将其更改为“@”。而电子邮件(用户)。email@provider.com)如果格式正确,错误仍然存在。如果他们在电子邮件的结尾或甚至在电子邮件的中间(U.E.email @ PvaveServ
self.initialize = function () {
$.validator.addMethod("emailWithDomain", function (value, element) {
return this.optional(element) || /[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?/i.test(value);
}, "Enter an Email Address in a valid email address format.");
$("#pageForm").validate({ ignore: [] });
$.each(self.rows(), function (index, key) {
self[key.name] = key;
});
};
self.initialize();
我相信它会应用到这里的元素:
self.render = function () {
switch (self.id()) {
case 'first-name':
case 'middle-name':
case 'last-name':
case 'suffix':
self.addLengthRequirement();
break;
case 'email':
self.addLengthRequirement();
self.selector().rules('add', {
emailWithDomain: true
});
break;
}
};
选择器如下所示:
self.selector = function () {
return $('input[name=' + self.name() + ']');
};
似乎只有当值的长度发生变化时才会进行验证,而不是当按下某个键或键发生变化时
我无法提供完整的代码片段。我希望这些信息足够有人帮助指出这个问题。我对jQuery验证器和REGEX都不太熟悉,不知道到底是什么问题,但我有一个报告的bug,我相信这就是问题所在。如果有人能帮忙,我真的很感激。谢谢。如果问题是验证没有按预期的时间间隔启动,请参阅按键盘或您选择的任何方式进行手动验证。另外,请查看并验证其行为是否符合记录。