0

ドキュメントによると(それがそうであるように)、属性を使用することにより、入力要素のパラメーターを必要とする検証を指定できます。これが推奨される方法であると書かれています。このような:

<input type="password" minlength="6" maxlength="50"/>

さて、それは簡単です。では、(たとえば)html属性を使用して範囲をどのように指定しますか?

<input type="number" range="[5, 50]"/>

いいえ、それは機能しません。角かっこ、中かっこ、中かっこ、角かっこ、またはそれらの組み合わせもありません。しかし、これはまったく予期しない方法で機能します。

<input type="number" range="53"/> 

-「番号は5から3の間でなければなりません」というエラーメッセージを吐き出します

誰かがこれの適切な構文を教えてもらえますか?

注:これは模範です。私はこの特定の問題を使用することで解決できることに気づきました

<input type="number" min="5" max="50"/> 

jquery-validate属性APIを使用して複雑な検証ルールを構築する方法に関するより一般的な回答を探しています。

ありがとう!

編集

別の例を示します。「preferred」属性構文を使用してこれをどのように行いますか?

$('form').validate({
    rules: {
        rt: {
          required: function(element) {
            return $("#age").val() < 13;
          }  
        }
    }
});

以下は機能しません。

<form>
    <input type="text" id="age" name="age"/>
    <input type="text" id="rt" name="rt" required="function(element) { return $('#age').val() < 13;}"/>

    <input type="text" id="tabcatcher"/>
    <input type="submit"/>
</form>

次のjsfiddleで遊んでください。

http://jsfiddle.net/GKNZF/

4

2 に答える 2

3

より一般的なケースでは、クラスを追加することで呼び出すことができる検証、属性とパラメーター/式/関数を追加することで呼び出すことができる検証、および属性を介して呼び出すことができない検証に関するドキュメントはありません。コードから、クラスリストに名前を追加することで呼び出すことができる検証のリストを次に示します。

必要な
電子メール
URL
日付日付
ISO
番号

クレジット カード

私が知っている検証は、属性によって呼び出すことができます。

min
max
minlength
maxlength
equalTo

わからない。これらを機能させるために必要な構文のドキュメントも、機能しないことを示すドキュメントもありません。



リモート で必要なコールバックで必要

長年のバグのために機能しません:

範囲範囲

于 2012-09-14T05:51:48.333 に答える
1

ここで報告されているように、これはプラグインの既知の問題/バグです。基本的に、プラグインは、最小値と最大値を使用して53、2桁の配列と見なします。53

これを修正するには、次のパッチを適用する必要があります。

// Patch by Chris Tierney (CF Webtools 7/13/2011)
// Issue logged at https://github.com/jzaefferer/jquery-validation/issues/112
$.each(['rangelength', 'range'], function() {
    if (typeof rules[this] == 'string') {
        rules[this] = rules[this].split(",");
    }
    if (rules[this]) {
        rules[this] = [Number(rules[this][0]), Number(rules[this][1])];
    }
});
于 2012-09-13T01:33:04.747 に答える