jQuery验证:字段必须为0或20的倍数

jQuery验证:字段必须为0或20的倍数,jquery,validation,Jquery,Validation,我正在尝试验证(jQuery验证插件)一个字段必须是0或20的倍数(0,20,40,60,…)。 有人知道怎么做吗?使用模数: var num = //your field num if(num%20 == 0){ //code here } 使用模量: var num = //your field num if(num%20 == 0){ //code here } 添加自定义验证方法 jQuery.validator.addMethod("special", functi

我正在尝试验证(jQuery验证插件)一个字段必须是0或20的倍数(0,20,40,60,…)。 有人知道怎么做吗?

使用模数:

var num = //your field num
if(num%20 == 0){
    //code here
}
使用模量:

var num = //your field num
if(num%20 == 0){
    //code here
}

添加自定义验证方法

jQuery.validator.addMethod("special", function (value, element) {
    return this.optional(element) || parseInt(value, 10) % 20 == 0
}, 'The value must be 0 or a multiple of 20');
然后


演示:

添加自定义验证方法

jQuery.validator.addMethod("special", function (value, element) {
    return this.optional(element) || parseInt(value, 10) % 20 == 0
}, 'The value must be 0 or a multiple of 20');
然后


演示:

此实现允许您设置任意多个以验证:

$.validator.addMethod("multiples", function (value, element, param) {
    return this.optional(element) || parseInt(value, 10) % param == 0
}, jQuery.validator.format("Please enter a multiple of {0}"));
然后使用以下任一格式调用验证(示例中允许12的倍数):


此实现允许您设置任意多个以验证:

$.validator.addMethod("multiples", function (value, element, param) {
    return this.optional(element) || parseInt(value, 10) % param == 0
}, jQuery.validator.format("Please enter a multiple of {0}"));
然后使用以下任一格式调用验证(示例中允许12的倍数):


var test=this.value%20==00%20为0:
var test=this。值%20==00%20是0:不要忘记
$。首先修剪
解析int
字段。。。字段值是字符串,而不是数字。@A.Wolff可能是,但最好确保将变量显式转换为预期类型(根据需要进行错误捕获),而不是依赖于隐式转换。不要忘记先修剪
parseInt
字段。。。字段值是字符串,而不是数字。@A.Wolff可能,但最好确保将变量显式转换为预期类型(根据需要进行错误捕获),而不是依赖隐式转换。非常感谢!非常感谢你!只允许代码答案,但也鼓励解释答案。请考虑添加一些解释。虽然此代码可以解决OP的问题,但最好包含一个解释,说明您的代码是如何解决OP问题的。通过这种方式,未来的访问者可以从您的帖子中学习,并将其应用到自己的代码中。因此,它不是一种编码服务,而是一种知识资源。此外,高质量、完整的答案更有可能被提升。这些特性,以及所有帖子都是独立的要求,是SO作为一个平台的一些优势,使其区别于论坛。您可以编辑以添加其他信息和/或用源文档补充说明。只允许使用代码回答,但也鼓励您解释答案。请考虑添加一些解释。虽然此代码可以解决OP的问题,但最好包含一个解释,说明您的代码是如何解决OP问题的。通过这种方式,未来的访问者可以从您的帖子中学习,并将其应用到自己的代码中。因此,它不是一种编码服务,而是一种知识资源。此外,高质量、完整的答案更有可能被提升。这些特性,以及所有帖子都是独立的要求,是SO作为一个平台的一些优势,使其区别于论坛。您可以编辑以添加其他信息和/或使用源文档补充说明。
$.validator.addMethod("multiples", function (value, element, param) {
    return this.optional(element) || parseInt(value, 10) % param == 0
}, jQuery.validator.format("Please enter a multiple of {0}"));