我对Jquery很新,我对我的文本框使用验证规则。问题是当我标记文本框是强制性的时,用户不输入任何值,那么它不会显示任何验证消息。我已经为文本框关联了另一个验证消息,因为值shu在范围内,并且当用户提供任何输入时它都有效。
$.validator.addMethod("requiredRangeFunction", function(value, element) {debugger
$.validator.messages["requiredRangeFunction"] =
jQuery.format(
$(element).attr('ErrorMessage') ? $(element).attr('ErrorMessage') : "Please enter the value between {0} and {1}",
$(element).attr('MinValue'),
$(element).attr('MaxValue')
);
return this.optional(element) || ((value > Number($(element).attr('MinValue')) && (value < Number($(element).attr('MaxValue')))));
}, "Please enter valid value.");
问题是this.optional(element)在用户没有提供任何输入时返回依赖项不匹配。
我的文本框也可以是可选的,所以我需要调用this.optional(element)
答案 0 :(得分:3)
测试(this.optional(element)== true)对我有用。
所以在你的情况下,它将是:
return (this.optional(element) == true) || ((value > Number($(element).attr('MinValue')) && (value < Number($(element).attr('MaxValue')))));
答案 1 :(得分:1)
(与Nav的解决方案相反)
return (this.optional(element) != false) || test;
这肯定有效。
答案 2 :(得分:0)
可选表示用户无需提供任何输入。如果没有输入,则无需进行验证。
答案 3 :(得分:0)
您可以替换
return this.optional(element) || <test condition>
通过
var r = $(element).rules();
var req=(this.objectLength(r))?r.required:false;
return !req || <test condition>;
可能会是恩惠:
var req=r.required; // true, false or undefined.
假设undefined与我们需要的false相同。