4

我对 Jquery 很陌生,我正在对我的文本框使用验证规则。问题是当我将文本框标记为强制 n 用户没有输入任何值时,它不会显示任何验证消息。我已经为文本框关联了另一个验证消息,该值 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)

4

4 回答 4

5

(this.optional(element) == true) 的测试对我有用。

因此,在您的情况下,它将是:

return  (this.optional(element) == true) || ((value > Number($(element).attr('MinValue')) && (value < Number($(element).attr('MaxValue')))));
于 2010-10-30T22:46:10.220 回答
1

您可以更换

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 相同。

于 2011-07-29T10:41:21.387 回答
1

(与 Nav 的解决方案相反)

return (this.optional(element) != false) || test;

这肯定有效。

于 2011-02-04T19:01:12.223 回答
0

可选意味着用户不必提供任何输入。如果没有输入,则不需要验证。

于 2009-11-19T18:07:15.117 回答