首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当添加一个this.optional验证方法时,jQuery (元素)做什么?

当添加一个this.optional验证方法时,jQuery (元素)做什么?
EN

Stack Overflow用户
提问于 2012-10-26 20:27:16
回答 2查看 29.7K关注 0票数 42

请参阅文件:

https://jqueryvalidation.org/jQuery.validator.addMethod/

我想知道this.optional(element)是做什么的。我创建了两个用于测试的表单:

Form1Form2 -一个和this.optional(element),另一个没有它。从理论上讲,根据安德鲁·惠特克( Andrew )对这个答案的几点评论:

所有this.optional所做的就是说“如果字段是可选的,如果它是空的,返回true”。

this.optional检查基本上是在评估字段是否符合规则之前检查字段是否为空白。

但在实际操作中,我认为Form1Form2的工作方式没有什么不同。请帮助我理解行动上的不同。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-10-26 22:02:28

好的..。因此,在您的例子中,字段在任何一种形式中都不是空白的。它要么具有占位符值,要么尝试使用电子邮件地址。如果元素为空且不需要,则this.optional(element)的全部要点是立即返回true。

因此,如果您有以下两种方法:

代码语言:javascript
复制
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类相比较,与只通过BOB值验证的类mustbeBOB相比,空白将失败。这更有意义吗?

票数 50
EN

Stack Overflow用户

发布于 2012-10-26 20:59:06

this.optional用于通用验证方法,这些方法可以与必需的或可选的元素一起使用。如果字段未填写,则允许它们跳过所有自己的检查。如果字段为可选且为空白,则调用this.optional的方法将立即成功返回。

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

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13093971

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档