26

jQuery Validate プラグインの例では、検証ルールを宣言するための 3 つの異なるアプローチを示しています。

  • CSS クラス -- 例<input type="text" name="whatever" class="required" />
  • 属性 -- 例<input type="text" name="whatever" required />
  • JS コード -- 例$("#myForm").validate({ rules: { whatever: "required", ... } });

しかし、ドキュメントのどこにも、一方を他方よりも優先して使用する理由を説明している場所がありません。また、各アプローチで検証メソッドを使用する方法の説明も表示されません(たとえば、タグ属性または css クラスで "max( value )" メソッドをどのように使用しますか?)。

これら 3 つのアプローチのトレードオフは何ですか? また、各アプローチを使用して、さまざまな検証方法をすべて正確に宣言するにはどうすればよいでしょうか?

4

4 に答える 4

39

データルール属性を通じてルールを適用できます。これは、クリーンなコードを維持するための最も簡単な方法であり、おそらく最良の方法です...

例:

<form id="myform">
    <input type="text" name="email" data-rule-required="true" data-rule-email="true">    
    <input type="text" name="password" id="password" data-rule-required="true" data-rule-minlength="6">
    <input type="text" name="password-confirm" data-rule-required="true" data-rule-minlength="6" data-rule-equalto="#password">
</form>

データ属性を介してメッセージを提供することもできます:

<input id="cemail" name="email" data-rule-required="true" data-rule-email="true" data-msg-email="Please enter a valid email address" />

JavaScript では、次のように呼び出します。

$('#myform').validate();
于 2013-03-30T11:06:09.150 に答える
2

ドキュメントhttp://jqueryvalidation.org/rulesから:

検証規則を指定するには、いくつかの方法があります。

  • パラメーターのない検証メソッドは、要素のクラスとして指定できます (推奨)
  • パラメーターを使用した検証メソッドを属性として指定できます (推奨)
  • どちらも、メタデータ プラグインを使用してメタデータとして指定できます [[[これは非推奨であるため、ドキュメントは少し古くなっていることに注意してください]]]
  • どちらも、validate() メソッドの rules-option を使用して指定できます。

https://stackoverflow.com/a/14380401/749227には、追加の有用な情報があります。

ただし、クラスよりも「必須」属性を使用することを好みます。ドキュメントで直接参照されているこの種のネイティブ属性サポートは見つかりませんが、スクリーン リーダーは class="required" よりも便利だと思うので、この 1 つのケースではそれを使用します。

余談ですが、プラグインが他のどのネイティブ属性を尊重しているかを知りたいです。そして、それらのどれが ADT によってピックアップされるかについての情報。

于 2013-12-09T22:27:14.827 に答える
1

あなたの特定の質問に答えて:

「タグ属性で「max(value)」メソッドをどのように使用しますか?」

<input id="mytext" name="mytext" max="2"/>

「...CSSクラスで「max(value)」メソッドをどのように使用しますか?」

これを行うことはできません。他の方法のいずれかを使用してルールを設定してください。

于 2013-01-24T14:37:44.980 に答える