请参阅文件:
https://jqueryvalidation.org/jQuery.validator.addMethod/
我想知道this.optional(element)是做什么的。我创建了两个用于测试的表单:
Form1和Form2 -一个和this.optional(element),另一个没有它。从理论上讲,根据安德鲁·惠特克( Andrew )对这个答案的几点评论:
所有
this.optional所做的就是说“如果字段是可选的,如果它是空的,返回true”。
和
this.optional检查基本上是在评估字段是否符合规则之前检查字段是否为空白。
发布于 2012-10-26 22:02:28
好的..。因此,在您的例子中,字段在任何一种形式中都不是空白的。它要么具有占位符值,要么尝试使用电子邮件地址。如果元素为空且不需要,则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类相比较,与只通过BOB值验证的类mustbeBOB相比,空白将失败。这更有意义吗?
发布于 2012-10-26 20:59:06
this.optional用于通用验证方法,这些方法可以与必需的或可选的元素一起使用。如果字段未填写,则允许它们跳过所有自己的检查。如果字段为可选且为空白,则调用this.optional的方法将立即成功返回。
通过使用该方法,该方法可以假定该值为非空值,这可以简化其其余的编码。
https://stackoverflow.com/questions/13093971
复制相似问题