jQueryの検証
jQuery Validate
jQuery Validate プラグインは、フォームの強力な検証機能を提供し、クライアント側のフォーム検証を容易にすると同時に、さまざまなアプリケーションのニーズを満たす多數(shù)のカスタマイズ オプションを提供します。このプラグインには、URL や電子メール検証などの一連の便利な検証メソッドがバンドルされており、ユーザー定義メソッドを作成するための API が提供されます。バンドルされているすべてのメソッドでは、デフォルトでエラー メッセージに英語が使用され、他の 37 言語に翻訳されています。
このプラグインは、jQuery チームのメンバー、jQuery UI チームの主任開発者、および QUnit のメンテナーである J?rn Zaefferer によって作成および保守されています。このプラグインは 2006 年の jQuery の初期から存在し、それ以來更新され続けています?,F(xiàn)在のバージョンは1.14.0です。
jQuery Validate 公式 Web サイトにアクセスし、jQuery Validate プラグインの最新バージョンをダウンロードします。
JSライブラリのインポート
<script src="http://static.runoob.com/assets/jquery-validation-1.14.0/lib/jquery.js"></script> <script src="http://static.runoob.com/assets/jquery-validation-1.14.0/dist/jquery.validate.min.js"></script>
デフォルトの検証ルール
シリアル番號 | ルール | 説明 |
---|---|---|
1 | 必須:true | フィールドに入力する必要があります。 |
2 | remote:"check.php" | ajaxメソッドを使用してcheck.phpを呼び出し、入力値を確認します。 |
3 | email:true | 正しい形式の電子メールを入力する必要があります。 |
4 | url:true | URL は正しい形式で入力する必要があります。 |
5 | date:true | 日付は正しい形式で入力する必要があります。日付検証 ie6 エラー。注意して使用してください。 |
6 | dateISO:true | 日付 (ISO) を正しい形式で入力する必要があります (例: 2009-06-23、1998/01/22)。形式のみが検証され、有効性は検証されません。 |
7 | number:true | 有効な數(shù)値 (負の數(shù)、10 進數(shù)) を入力する必要があります。 |
8 | 數(shù)字:true | 整數(shù)を入力する必要があります。 |
9 | クレジットカード: | 有効なクレジットカード番號を入力する必要があります。 |
10 | equalTo:"#field" | 入力値は #field と同じである必要があります。 |
11 | accept: | 有効なサフィックス (アップロードされたファイルのサフィックス) を含む文字列を入力します。 |
12 | maxlength:5 | 最大長5の文字列を入力してください(漢字は1文字として數(shù)えます)。 |
13 | minlength:10 | 最小長が 10 の文字列を入力してください (漢字は 1 文字としてカウントされます)。 |
14 | rangelength:[5,10] | 入力長は 5 ~ 10 である必要があります (中國語の文字は 1 文字としてカウントされます)。 |
15 | range:[5,10] | 入力値は 5 ~ 10 である必要があります。 |
16 | max:5 | 入力値は5を超えることはできません。 |
17 | min:10 | 入力値は 10 未満にすることはできません。 |
デフォルトプロンプト
messages: { required: "This field is required.", remote: "Please fix this field.", email: "Please enter a valid email address.", url: "Please enter a valid URL.", date: "Please enter a valid date.", dateISO: "Please enter a valid date ( ISO ).", number: "Please enter a valid number.", digits: "Please enter only digits.", creditcard: "Please enter a valid credit card number.", equalTo: "Please enter the same value again.", maxlength: $.validator.format( "Please enter no more than {0} characters." ), minlength: $.validator.format( "Please enter at least {0} characters." ), rangelength: $.validator.format( "Please enter a value between {0} and {1} characters long." ), range: $.validator.format( "Please enter a value between {0} and {1}." ), max: $.validator.format( "Please enter a value less than or equal to {0}." ), min: $.validator.format( "Please enter a value greater than or equal to {0}." )}
jQuery Validateは、ダウンロードパッケージのdist/localization/messages_zh.jsにある中國語メッセージプロンプトパッケージを提供します。內(nèi)容は次のとおりです:
(function( factory ) {if ( typeof define === "function" && define.amd ) { define( ["jquery", "../jquery.validate"], factory );} else { factory( jQuery );}}(function( $ ) {/* * Translated default messages for the jQuery validation plugin. * Locale: ZH (Chinese, 中文 (Zhōngwén), 漢語, 漢語) */$.extend($.validator.messages, { required: "這是必填字段", remote: "請修正此字段", email: "請輸入有效的電子郵件地址", url: "請輸入有效的網(wǎng)址", date: "請輸入有效的日期", dateISO: "請輸入有效的日期 (YYYY-MM-DD)", number: "請輸入有效的數(shù)字", digits: "只能輸入數(shù)字", creditcard: "請輸入有效的信用卡號碼", equalTo: "你的輸入不相同", extension: "請輸入有效的后綴", maxlength: $.validator.format("最多可以輸入 {0} 個字符"), minlength: $.validator.format("最少要輸入 {0} 個字符"), rangelength: $.validator.format("請輸入長度在 {0} 到 {1} 之間的字符串"), range: $.validator.format("請輸入范圍在 {0} 到 {1} 之間的數(shù)值"), max: $.validator.format("請輸入不大于 {0} 的數(shù)值"), min: $.validator.format("請輸入不小于 {0} 的數(shù)值")});}));
ローカリゼーション情報ファイルdist/localizationを導入できます。 /messages_zh.js からページ:
<script src="http://static.runoob.com/assets/jquery-validation-1.14.0/dist/localization/messages_zh.js"></script>
使い方
1. 検証ルールをコントロールに書き込む
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>PHP中文網(wǎng)(php.cn)</title> <script src="http://static.runoob.com/assets/jquery-validation-1.14.0/lib/jquery.js"></script> <script src="http://static.runoob.com/assets/jquery-validation-1.14.0/dist/jquery.validate.min.js"></script> <script src="http://static.runoob.com/assets/jquery-validation-1.14.0/dist/localization/messages_zh.js"></script> <script> $.validator.setDefaults({ submitHandler: function() { alert("提交事件!"); } }); $().ready(function() { $("#commentForm").validate(); }); </script> <style> .error{ color:red; } </style> </head> <body> <form class="cmxform" id="commentForm" method="get" action=""> <fieldset> <legend>輸入您的名字,郵箱,URL,備注。</legend> <p> <label for="cname">Name (必需, 最小兩個字母)</label> <input id="cname" name="name" minlength="2" type="text" required> </p> <p> <label for="cemail">E-Mail (必需)</label> <input id="cemail" type="email" name="email" required> </p> <p> <label for="curl">URL (可選)</label> <input id="curl" type="url" name="url"> </p> <p> <label for="ccomment">備注 (必需)</label> <textarea id="ccomment" name="comment" required></textarea> </p> <p> <input class="submit" type="submit" value="Submit"> </p> </fieldset> </form> </body> </html>
試してみる
2.
$().ready(function() {// 在鍵盤按下并釋放及提交后驗證提交表單 $("#signupForm").validate({ rules: { firstname: "required", lastname: "required", username: { required: true, minlength: 2 }, password: { required: true, minlength: 5 }, confirm_password: { required: true, minlength: 5, equalTo: "#password" }, email: { required: true, email: true }, topic: { required: "#newsletter:checked", minlength: 2 }, agree: "required" }, messages: { firstname: "請輸入您的名字", lastname: "請輸入您的姓氏", username: { required: "請輸入用戶名", minlength: "用戶名必需由兩個字母組成" }, password: { required: "請輸入密碼", minlength: "密碼長度不能小于 5 個字母" }, confirm_password: { required: "請輸入密碼", minlength: "密碼長度不能小于 5 個字母", equalTo: "兩次密碼輸入不一致" }, email: "請輸入一個正確的郵箱", agree: "請接受我們的聲明", topic: "請選擇兩個主題" }});
messages に検証ルールを書き込む。コントロールにはメッセージがありません。デフォルトのメッセージを呼び出します
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>PHP中文網(wǎng)(php.cn)</title> <script src="http://static.runoob.com/assets/jquery-validation-1.14.0/lib/jquery.js"></script> <script src="http://static.runoob.com/assets/jquery-validation-1.14.0/dist/jquery.validate.min.js"></script> <script src="http://static.runoob.com/assets/jquery-validation-1.14.0/dist/localization/messages_zh.js"></script> <script> $.validator.setDefaults({ submitHandler: function() { alert("提交事件!"); } }); $().ready(function() { // 在鍵盤按下并釋放及提交后驗證提交表單 $("#signupForm").validate({ rules: { firstname: "required", lastname: "required", username: { required: true, minlength: 2 }, password: { required: true, minlength: 5 }, confirm_password: { required: true, minlength: 5, equalTo: "#password" }, email: { required: true, email: true }, "topic[]": { required: "#newsletter:checked", minlength: 2 }, agree: "required" }, messages: { firstname: "請輸入您的名字", lastname: "請輸入您的姓氏", username: { required: "請輸入用戶名", minlength: "用戶名必需由兩個字母組成" }, password: { required: "請輸入密碼", minlength: "密碼長度不能小于 5 個字母" }, confirm_password: { required: "請輸入密碼", minlength: "密碼長度不能小于 5 個字母", equalTo: "兩次密碼輸入不一致" }, email: "請輸入一個正確的郵箱", agree: "請接受我們的聲明", topic: "請選擇兩個主題" } }); }); </script> <style> .error{ color:red; } </style> </head> <body> <form class="cmxform" id="signupForm" method="get" action=""> <fieldset> <legend>驗證完整的表單</legend> <p> <label for="firstname">名字</label> <input id="firstname" name="firstname" type="text"> </p> <p> <label for="lastname">姓氏</label> <input id="lastname" name="lastname" type="text"> </p> <p> <label for="username">用戶名</label> <input id="username" name="username" type="text"> </p> <p> <label for="password">密碼</label> <input id="password" name="password" type="password"> </p> <p> <label for="confirm_password">驗證密碼</label> <input id="confirm_password" name="confirm_password" type="password"> </p> <p> <label for="email">Email</label> <input id="email" name="email" type="email"> </p> <p> <label for="agree">請同意我們的聲明</label> <input type="checkbox" class="checkbox" id="agree" name="agree"> </p> <p> <label for="newsletter">我樂意接收新信息</label> <input type="checkbox" class="checkbox" id="newsletter" name="newsletter"> </p> <fieldset id="newsletter_topics"> <legend>主題 (至少選擇兩個) - 注意:如果沒有勾選“我樂意接收新信息”以下選項會隱藏,但我們這里作為演示讓它可見</legend> <label for="topic_marketflash"> <input type="checkbox" id="topic_marketflash" value="marketflash" name="topic[]">Marketflash </label> <label for="topic_fuzz"> <input type="checkbox" id="topic_fuzz" value="fuzz" name="topic[]">Latest fuzz </label> <label for="topic_digester"> <input type="checkbox" id="topic_digester" value="digester" name="topic[]">Mailing list digester </label> <label for="topic" class="error" style="display:none">至少選擇兩個</label> </fieldset> <p> <input class="submit" type="submit" value="提交"> </p> </fieldset> </form> </body> </html>
お試しください
必須: true 値が必要です。
必須: "#aa:checked" 式の値が true の場合、検証が必要です。
required: function(){} は true を返し、検証が必要であることを示します。
後の 2 つは、同時に入力または省略する必要があるフォーム內(nèi)の要素によく使用されます。
一般的なメソッドと注意すべき問題
1. デフォルトの SUBMIT を他のメソッドで置き換えます
$().ready(function() { $("#signupForm").validate({ submitHandler:function(form){ alert("提交事件!"); form.submit(); } });});
ajax メソッドを使用します
$(".selector").validate({ submitHandler: function(form) { $(form).ajaxSubmit(); } })
次のように記述された validate のデフォルト値を設定できます:
$.validator.setDefaults({ submitHandler: function(form) { alert("提交事件!");form.submit(); }});
フォームを送信するには、$(form).submit() を使用する代わりに、form.submit () を使用する必要があります。
2. デバッグし、検証のみを行い、フォームを送信しません
このパラメーターが true の場合、フォームは送信されず、チェックのみが行われるため、デバッグに非常に便利です。
$().ready(function() { $("#signupForm").validate({ debug:true });});
デバッグとして設定したいページに複數(shù)のフォームがある場合は、次を使用します:
$.validator.setDefaults({ debug: true})
3. 無視: 検証せずに特定の要素を無視します
ignore: ".ignore"
4. エラー メッセージが表示される位置を変更します
errorPlacement:Callback
間違った配置を示します。 位置 (デフォルト) は次のとおりです: error.appendTo(element.parent()); つまり、エラー メッセージは検証された要素の後に配置されます。
errorPlacement: function(error, element) { error.appendTo(element.parent()); }
例
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>PHP中文網(wǎng)(php.cn)</title> <script src="http://static.runoob.com/assets/jquery-validation-1.14.0/lib/jquery.js"></script> <script src="http://static.runoob.com/assets/jquery-validation-1.14.0/dist/jquery.validate.min.js"></script> <script src="http://static.runoob.com/assets/jquery-validation-1.14.0/dist/localization/messages_zh.js"></script> <script> $.validator.setDefaults({ submitHandler: function() { alert("提交事件!"); } }); $().ready(function() { // 提交時驗證表單 var validator = $("#form1").validate({ errorPlacement: function(error, element) { // Append error within linked label $( element ) .closest( "form" ) .find( "label[for='" + element.attr( "id" ) + "']" ) .append( error ); }, errorElement: "span", messages: { user: { required: " (必需字段)", minlength: " (不能少于 3 個字母)" }, password: { required: " (必需字段)", minlength: " (字母不能少于 5 個且不能大于 12 個)", maxlength: " (字母不能少于 5 個且不能大于 12 個)" } } }); $(".cancel").click(function() { validator.resetForm(); }); }); </script> <style> .error{ color:red; } </style> </head> <body> <form method="get" class="cmxform" id="form1" action=""> <fieldset> <legend>登錄框</legend> <p> <label for="user">用戶名</label> <input id="user" name="user" required minlength="3"> </p> <p> <label for="password">密碼</label> <input id="password" type="password" maxlength="12" name="password" required minlength="5"> </p> <p> <input class="submit" type="submit" value="Login"> </p> </fieldset> </form> </body> </html>
試してみてください
コードの機能は次のとおりです: 通常の狀況では、エラー メッセージは <td class="status"></td> に表示されます。ラジオの場合は表示されます
Parameter | Type | Description | Default value |
---|---|---|---|
errorClass | String | エラープロンプトの CSS クラス名を指定すると、エラープロンプトのスタイルをカスタマイズできます。 | "error" |
errorElement | String | エラーをマークするために使用するラベルは何ですか? デフォルトは label ですが、em に変更できます。 | "label" |
errorContainer | Selector | エラーメッセージがある場合に表示するコンテナのプロパティを自動的に変更し、エラーがない場合は非表示にします。使用。 errorContainer: "#messageBox1, #messageBox2" | |
errorLabelContainer | Selector | エラーメッセージを 1 つのコンテナに入れます。 | |
wrapper | String | 上記の errorElement をラップするために使用するラベル。 |
通常、これら 3 つの屬性は、コンテナ內(nèi)のすべてのエラー プロンプトを表示し、情報がない場合に自動的に非表示にする機能を実現(xiàn)するために同時に使用されます。
errorContainer: "div.error",errorLabelContainer: $("#signupForm div.error"),wrapper: "li"
5. エラー メッセージ表示のスタイルを変更する
エラー プロンプトのスタイルを設定すると、このシステムでは検証のスタイルを維持するために特別に使用される validation.css が確立されています。ファイル。
input.error { border: 1px solid red; }label.error { background:url("./demo/images/unchecked.gif") no-repeat 0px 0px; padding-left: 16px; padding-bottom: 2px; font-weight: bold; color: #EA5200;}label.checked { background:url("./demo/images/checked.gif") no-repeat 0px 0px;}
6. 各フィールドは関數(shù)
success:String,Callback
を実行することで検証されます。検証される要素の後に文字列が続く場合は、CSS クラスとして扱われます。機能。
success: function(label) { // set as text for IE label.html(" ").addClass("checked"); //label.addClass("valid").text("Ok!")}
CSS <style>label.valid {}</style> で定義されたスタイルで検証要素に「valid」を追加します。
success: "valid"
7.検証トリガーメソッドの修正
以下はブール型ですが、falseに変更したくない場合はランダムに追加しないことをお勧めします。
トリガーメソッド | タイプ | 説明 | デフォルト値 |
---|---|---|---|
onsubmit | ブール | 送信時に検証します。他の方法を使用して検証するには false に設定します。 | tru??e |
onfocusout | Boolean | フォーカスが失われたときを検証します (チェックボックス/ラジオ ボタンを除く)。 | tru??e |
onkeyup | Boolean | keyupで検証されました。 | tru??e |
onclick | Boolean | チェックボックスとラジオボタンのクリックを検証します。 | tru??e |
focusInvalid | Boolean | フォームが送信された後、検証に失敗したフォーム (送信前にフォーカスを取得した最初のフォームまたは失敗した検証フォーム) がフォーカスを取得します。 | tru??e |
focusCleanup | Boolean | trueの場合、検証に失敗した要素がフォーカスを取得したときのエラーメッセージを削除します。 focusInvalid での使用は避けてください。 | 噓 |
// 重置表單$().ready(function() { var validator = $("#signupForm").validate({ submitHandler:function(form){ alert("submitted"); form.submit(); } }); $("#reset").click(function() { validator.resetForm(); });});
8. 非同期検証
remote:URL
デフォルトでは、検証された現(xiàn)在の値がリモート アドレスに送信されます。他の値を送信する必要がある場合は、データ オプションを使用できます。
remote: "check-email.php"
remote: { url: "check-email.php", //后臺處理程序 type: "post", //數(shù)據(jù)發(fā)送方式 dataType: "json", //接受數(shù)據(jù)格式 data: { //要傳遞的數(shù)據(jù) username: function() { return $("#username").val(); } }}
リモート アドレスは "true" または "false" のみを出力し、その他の出力はできません。
9. カスタム検証を追加します
addMethod:name, method, message
カスタム検証メソッド
// 中文字兩個字節(jié)jQuery.validator.addMethod("byteRangeLength", function(value, element, param) { var length = value.length; for(var i = 0; i < value.length; i++){ if(value.charCodeAt(i) > 127){ length++; } } return this.optional(element) || ( length >= param[0] && length <= param[1] ); }, $.validator.format("請確保輸入的值在{0}-{1}個字節(jié)之間(一個中文字算2個字節(jié))"));// 郵政編碼驗證 jQuery.validator.addMethod("isZipCode", function(value, element) { var tel = /^[0-9]{6}$/; return this.optional(element) || (tel.test(value));}, "請正確填寫您的郵政編碼");
注: それをAdditional-methods.js ファイルに追加するか、jquery.validate.js ファイルに追加します。 added-methods.js ファイルに記述することをお勧めします。
注: isZipCode: 「中國語の文字、英語の文字、數(shù)字、下線のみを含めることができます」をmessages_cn.js ファイルに追加します。呼び出す前に、Additional-methods.js ファイルへの參照を追加します。
10.ラジオ、チェックボックス、選択の確認
ラジオの必須とは、いずれかを選択する必要があることを意味します。
<input type="radio" id="gender_male" value="m" name="gender" required /><input type="radio" id="gender_female" value="f" name="gender"/>
チェックボックスの必須は、選択する必要があることを意味します。
<input type="checkbox" class="checkbox" id="agree" name="agree" required />
チェックボックスの minlength は選択する必要がある最小數(shù)を表し、maxlength は選択の最大數(shù)を表し、rangelength:[2,3] は選択數(shù)の範囲を表します。
<input type="checkbox" class="checkbox" id="spam_email" value="email" name="spam[]" required minlength="2" /><input type="checkbox" class="checkbox" id="spam_phone" value="phone" name="spam[]" /><input type="checkbox" class="checkbox" id="spam_mail" value="mail" name="spam[]" />
select の required は、選択された値を空にすることができないことを意味します。
<select id="jungle" name="jungle" title="Please select something!" required> <option value=""></option> <option value="1">Buga</option> <option value="2">Baga</option> <option value="3">Oi</option></select>
select の minlength は選択された項目 (複數(shù)選択可能な選択) の最小數(shù)を表し、maxlength は選択された最大數(shù)を表し、rangelength:[2,3] は選択された數(shù)の範囲を表します。
<select id="fruit" name="fruit" title="Please select at least two fruits" class="{required:true, minlength:2}" multiple="multiple"> <option value="b">Banana</option> <option value="a">Apple</option> <option value="p">Peach</option> <option value="t">Turtle</option></select>
jQuery.validate 中國語 API
名前 | 戻り値の型 | 説明 |
---|---|---|
validate(options) | Validator | 選択したFORMを検証します。 |
valid() | Boolean | 検証に合格したかどうかを確認します。 |
rules() | Options | 要素の検証ルールを返します。 |
rules("add",rules) | オプション | 検証ルールを追加します。 |
rules("remove",rules) | オプション | 検証ルールを削除します。 |
removeAttrs(attributes) | Options | 特別な屬性を削除して返します。 |
カスタムセレクター | ||
:blank | Validator | 値のないフィルター。 |
:filled | 配列<要素> | 値フィルター。 |
: チェックなし | 配列 <要素> | 選択されていない要素のフィルター。 |
Utilities | ||
jQuery.format(template,argument,argumentN...) | String | テンプレート內(nèi)の {n} をパラメータに置き換えます。 |
Validator
validate メソッドは Validator オブジェクトを返します。 Validator オブジェクトには、検証プログラムをトリガーしたり、フォームのコンテンツを変更したりするために使用できるメソッドが多數(shù)あります。一般的に使用されるメソッドをいくつか紹介します。
名前 | 戻り値の型 | 説明 |
---|---|---|
form() | Boolean | 検証フォームは成功または失敗を返します。 |
element(element) | Boolean | 単一の要素が成功したか失敗したかを検証します。 |
resetForm() | 未定義 | 以前に検証されたFORMを検証前の元の狀態(tài)に戻します。 |
showErrors(エラー) | 未定義 | 特定のエラーメッセージを表示します。 |
バリデーター関數(shù) | ||
setDefaults(デフォルト) | 未定義 | デフォルトの設定を変更します。 |
addMethod(name,method,message) | 未定義 | 新しい検証方法を追加します。一意の名前、JAVASCRIPT メソッド、およびデフォルトのメッセージを含める必要があります。 |
addClassRules(name, rules) | unknown | 結合された検証タイプを追加します。これは、クラスで複數(shù)の検証メソッドを使用する場合に便利です。 |
addClassRules(rules) | 未定義 | 組み合わせた検証タイプを追加します。これは、クラスで複數(shù)の検証メソッドを使用する場合にさらに便利です。これは、複數(shù)の検証方法を同時に追加するためです。 |
組み込み検証メソッド
名前 | 戻り値の型 | 説明 |
---|---|---|
required() | Boolean | 必須の検証要素。 |
required(dependency-expression) | Boolean | 必須要素は式の結果に依存します。 |
required(dependency-callback) | Boolean | 必須要素はコールバック関數(shù)の結果によって異なります。 |
remote(url) | Boolean | リモート検証をリクエストします。 url は通常、リモート呼び出しメソッドです。 |
minlength(length) | Boolean | 最小の長さを設定します。 |
maxlength(length) | Boolean | 最大長を設定します。 |
rangelength(range) | Boolean | 長さの範囲 [min,max] を設定します。 |
min(value) | Boolean | 最小値を設定します。 |
max(value) | Boolean | 最大値を設定します。 |
email() | Boolean | メール形式を確認してください。 |
range(範囲) | ブール | 値の範囲を設定します。 |
url() | ブール | URL 形式を確認します。 |
date() | Boolean | 日付形式を検証します (30/30/2008 の形式と同様に、日付の正確さは検証されず、形式のみが検証されます)。 |
dateISO() | Boolean | ISO タイプの日付形式を確認します。 |
dateDE() | Boolean | ドイツ語の日付形式 (29.04.1994 または 1.1.2006) を確認します。 |
number() | Boolean | 10 進數(shù) (小數(shù)を含む) を検証します。 |
digitals() | Boolean | 整數(shù)を検証します。 |
creditcard() | ブール | クレジット カード番號を確認してください。 |
accept(extension) | Boolean | 同じサフィックス名を持つ文字列を検証します。 |
equalTo(other) | Boolean | 2 つの入力ボックスの內(nèi)容が同じかどうかを検証します。 |
phoneUS() | ブール | 米國の電話番號を確認します。 |
validate() オプション
説明 | コード |
---|---|
debug: デバッグ モードに入ります (フォームは送信されません)。 | $(".selector").validate({ debug:true}) |
デバッグをデフォルトとして設定します。 | $.validator.setDefaults({ debug:true}) |
submitHandler: 検証に合格した後に実行される関數(shù)には、フォーム送信関數(shù)が含まれている必要があります。含まれていない場合、フォームは送信されません。 | $(".selector").validate({ submitHandler:function(form) { $(form).ajaxSubmit();}}) |
ignore: 一部の要素を検証しません。 | $("#myform").validate({ ignore:".ignore"}) |
rules: key:value の形式のカスタム ルール。key は検証される要素で、value は文字列またはオブジェクトです。 | $(".selector").validate({ rules:{ name:"required", email:{ required:true, email:true}}}) |
messages: key:value の形式のカスタム プロンプト メッセージ。key は検証対象の要素で、value は文字列または関數(shù)です。 | $(".selector").validate({ rules:{ name:"required", email:{ required:true, email:true}}, messages:{ name:"Name不能為空", email:{ required:"E-mail不能為空", email:"E-mail地址不正確"}}}) |
groups: 要素のグループを確認し、エラー プロンプトを使用し、errorPlacement を使用してエラー メッセージを配置する場所を制御します。 | $("#myform").validate({ groups:{ username:"fname lname"}, errorPlacement:function(error,element) {if (element.attr("name") == "fname" || element.attr("name") == "lname") error.insertAfter("#lastname");else error.insertAfter(element);}, debug:true}) |
OnSubmit: ブール型、デフォルトは true、送信時に検証するかどうかを指定します。 | $(".selector").validate({ onsubmit:false}) |
onfocusout: ブール型、デフォルトは true、フォーカスを取得するときに検証するかどうかを指定します。 | $(".selector").validate({ onfocusout:false}) |
onkeyup: ブール型、デフォルトは true、キーボードが打たれたときに検証するかどうかを指定します。 | $(".selector").validate({ onkeyup:false}) |
onclick: ブール型、デフォルトは true、マウスのクリック時に検証するかどうかを指定します (一般検証チェックボックス、ラジオボックス)。 | $(".selector").validate({ onclick:false}) |
focusInvalid: ブール型、デフォルトは true。フォームが送信されると、検証に失敗したフォーム (最初に検証に失敗したフォーム、または送信前にフォーカスを受け取ったフォーム) がフォーカスを取得します。 | $(".selector").validate({ focusInvalid:false}) |
focusCleanup: ブール型、デフォルトは false。未検証の要素がフォーカスを取得したときのエラー メッセージを削除します (focusInvalid での使用は避けてください)。 | $(".selector").validate({ focusCleanup:true}) |
errorClass: 文字列型、デフォルトは「error」。エラー プロンプトの CSS クラス名を指定して、エラー プロンプトのスタイルをカスタマイズします。 | $(".selector").validate({ errorClass:"invalid"}) |
errorElement: 文字列型、デフォルトは「ラベル」。エラーをマークするために使用するラベルを指定します。 | $(".selector").validate errorElement:"em"}) |
wrapper: 文字列を入力し、使用するラベルを指定し、上記の errorElement をラップします。 | $(".selector").validate({ wrapper:"li"}) |
errorLabelContainer: エラー情報をコンテナに入れるタイプセレクター。 | $("#myform").validate({ errorLabelContainer:"#messageBox", wrapper:"li", submitHandler:function() { alert("Submitted!") }}) |
showErrors: 検証に失敗した要素の合計數(shù)を表示する関數(shù)が続きます。 | $(".selector").validate({ showErrors:function(errorMap,errorList) { $("#summary").html("Your form contains " + this.numberOfInvalids() + " errors,see details below.");this.defaultShowErrors();}}) |
errorPlacement: 関數(shù)を使用すると、エラーが配置される場所をカスタマイズできます。 | $("#myform").validate({ errorPlacement:function(error,element) { error.appendTo(element.parent("td").next("td")); }, debug:true}) |
success: 検証対象の要素が検証に合格した後のアクションは、文字列が続く場合、CSS クラスとして扱われるか、関數(shù)が後に続くこともあります。 | $("#myform").validate({ success:"valid", submitHandler:function() { alert("Submitted!") }}) |
ハイライト: 検証に合格していない要素にエフェクトやフラッシュなどを追加できます。 |
addMethod(name,method,message)method
パラメータ名は追加されたメソッドの名前です。
Parameterメソッドは、3つのパラメータ(value、element、param)を受け取る関數(shù)です。
value は要素の値、element は要素自體、param はパラメータです。
addMethod を使用して、組み込みの Validation メソッドに加えて検証メソッドを追加できます。たとえば、1 つの文字のみを入力できるフィールドがあり、その範囲は次のようになります:
$.validator.addMethod("af",function(value,element,params){ if(value.length>1){return false;} if(value>=params[0] && value<=params[1]){return true;}else{return false;}},"必須是一個字母,且a-f");
id="username" のフォームフィールドがある場合、ルールを記述します:
username:{ af:["a","f"]}
addMethod の最初のパラメータは、追加された検証メソッドの名前です。この場合は af です。
addMethod の 3 番目のパラメーターは、カスタマイズされたエラー プロンプトです。ここでのプロンプトは、「文字と a ~ f である必要があります」です。
addMethod の 2 番目のパラメータは関數(shù)です。これはより重要であり、この検証メソッドを使用する際の書き込み方法を決定します。
パラメータが 1 つだけの場合は、af: "a" のように直接記述します。複數(shù)のパラメータがある場合は、[] で區(qū)切って記述します。
メタ文字列の方法
$("#myform").validate({ meta:"validate", submitHandler:function() { alert("Submitted!") }})rree