请参阅文档:
https://jqueryvalidation.org/jQuery.validator.addMethod/
我不知道什么this.optional(element)
一样。 我创建了两种形式的测试:
Form1中和窗体2 -一个与this.optional(element)
,而另一个没有它。 从理论上讲并根据夫妇在评论这个答案由安德鲁·惠特克:
所有this.optional
确实是说“如果该字段是可选的,返回真,如果是空白”
和
该this.optional
检查主要检查是否该字段为空或没有评估它是否符合规则之前。
但在行动我看怎么没有区别Form1中和Form2的工作。 请帮助我了解工作中的差异。
OK ......所以在你的例子,该领域是两种形式从不空白。 无论是它有一个占位符值,或者在电子邮件地址的尝试。 整点this.optional(element)
是,如果该元素是空白的,它不要求立即返回true。
所以,如果你有这两种方法:
jQuery.validator.addMethod("BOB", function (value, element) {
return this.optional(element) ||
element.value === 'BOB';
}, 'You did not enter BOB');
jQuery.validator.addMethod("mustbeBOB", function (value, element) {
return element.value === 'BOB';
}, 'You did not enter BOB');
添加类的BOB required
将是一样进入一类mustbeBOB
。 与此相比,具有一流的BOB
这将允许空白或“BOB”,VS一类mustbeBOB
将只通过验证,值为BOB
,空白会失败。 这是否更有意义?
this.optional
意在通用的验证方法,其机制可能与必需的还是可选的元素被用于使用。 这使他们跳过了所有自己检查该字段没有填写如果字段是可选的,该方法成功地立即返回。 如果它的要求,该方法将立即返回失败。
通过使用此,该方法可以假定值为非空的,这样可以简化其编码的其余部分。
文章来源: What does this.optional(element) do when adding a jQuery validation method?