4

私はJqueryを初めて使用し、テキストボックスに対して検証ルールを使用しています。問題は、テキストボックスを必須としてマークした場合、ユーザーが値を入力しないと、検証メッセージが表示されないことです。テキストボックスに別の検証メッセージを関連付けました。値は範囲内にあり、ユーザーが入力を入力すると機能します。

$.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>;

多分それはenouthになります:

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 に答える