什么this.optional(元素)加入jQuery验证方法时,怎么办?(What does th

2019-07-02 17:34发布

请参阅文档:
https://jqueryvalidation.org/jQuery.validator.addMethod/

我不知道什么this.optional(element)一样。 我创建了两种形式的测试:
Form1中和窗体2 -一个与this.optional(element) ,而另一个没有它。 从理论上讲并根据夫妇在评论这个答案由安德鲁·惠特克:

所有this.optional确实是说“如果该字段是可选的,返回真,如果是空白”

this.optional检查主要检查是否该字段为空或没有评估它是否符合规则之前。

但在行动我看怎么没有区别Form1中和Form2的工作。 请帮助我了解工作中的差异。

Answer 1:

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 ,空白会失败。 这是否更有意义?



Answer 2:

this.optional意在通用的验证方法,其机制可能与必需的还是可选的元素被用于使用。 这使他们跳过了所有自己检查该字段没有填写如果字段是可选的,该方法成功地立即返回。 如果它的要求,该方法将立即返回失败。

通过使用此,该方法可以假定值为非空的,这样可以简化其编码的其余部分。



文章来源: What does this.optional(element) do when adding a jQuery validation method?