jQuery Validation プラグインを使用してフォームを検証する場合、文字列が正確に X 文字の長さであることをどのように確認しますか?
46836 次
4 に答える
57
これには(現在)組み込みメソッドがないため、独自のメソッドを追加する必要があります。これはうまくいきます:
jQuery.validator.addMethod("exactlength", function(value, element, param) {
return this.optional(element) || value.length == param;
}, $.validator.format("Please enter exactly {0} characters."));
次に、次のように使用できます。
$("#formtovalidate").validate({
rules: {
somefield: {
exactlength: 10
}
});
更新 - 仕組み
これがどのように機能するか尋ねられました。詳細はわかりません。この方法は、既存のものをモデルにしています。しかし、これはそれを説明するための私の最善の試みです。
- この関数は
value
、element
、およびを受け取りますparam
。value
検証されるフィールドに入力された値ですelement
フィールドそのものですparam
ルールの種類とコロンの後に来るものは何でもです。上記の例では、10 インチです。exactlength: 10
- 次の行は
return
ステートメントです。これにより、検証メソッドの最終的な判断が、それを呼び出したコードに返されます。返さtrue
れる検証メソッドは、「このフィールドは検証に合格しました!」と言っています。それが置かれている行の値を返します。 - の
return
後に、「or」演算子 ( ) で区切られた 2 つの宣言が続き||
ます。||
演算子は、「この左の項目を評価する」という意味です。true の場合は、true を返します。そうでない場合は、右側のものを試してください。true の場合は、true を返します。それ以外の場合は、false を返します。- 左の商品は
this.optional(element)
. 要素がルールで必要ない場合、これは true を返し、検証も同様です。つまり、「このフィールドが必須であると言わなければ、有効かどうかはどうでもいい」ということです。 - フィールドが必須の場合は、 の右側に移動し
||
ます。これが実際の検証テストです。フィールドの入力の長さと、指定した長さを比較します。それらが同じである場合、true が返され、メソッドは true を返し、検証はパスします。それ以外の場合、検証は失敗します。
- 左の商品は
于 2009-08-04T18:32:03.333 に答える
22
例:
rules : {
"someFieldName":{digits:true,minlength:20,maxlength:20}
}
于 2011-05-17T09:02:38.903 に答える
3
最も簡単な方法は、データ属性を介して既存の検証メソッドを使用し、明確にするために独自の検証メッセージを設定することです。
<input data-rule-minlength="8" data-rule-maxlength="8" data-msg-minlength="Exactly 8 characters please" data-msg-maxlength="Exactly 8 characters please">
于 2015-11-19T22:26:01.727 に答える