2012-04-27 24 views
22

私はちょっとした問題があります。私はそれが有効であっても、要素に対してjquery-valdation errormessageをトリガーしたい。jQuery検証トリガーエラーメッセージ

シナリオ: 私は大きなフォームを持っています。入力の1つはPersonalId用です。 PersonalIdを入力するのはオプションです。 その入力の横には通常のボタン(送信ボタンではありません)があります。その(ajaxから情報を取得する)をクリックし、PersonalIdフィールドが空の場合、そのエラーメッセージをトリガーしたいです。

これはjQuery Validateで可能ですか、独自の関数を作成する必要はありますか?

+0

[手動でテキストボックスに控えめな検証エラーを設定する](https://stackoverflow.com/questions/7380278/manually-set-unobtrusive-validation-error-on-a-textbox) – KyleMit

答えて

45

これはjQuery Validateで可能ですか、それとも独自の関数を作成する必要がありますか?

両方とも、 showErrors関数を使用すると、フォームにエラーを手動で表示することができますが、フォームにサブミットしたときに有効になるルールでないようにするため、独自の値をチェックする必要があります入力。

のような何か:

var $validator = $("#myform").validate(); 
$("#checkid").click(function() { 
    var errors; 

    if (!$("#personalid").val()) { 
     /* Build up errors object, name of input and error message: */ 
     errors = { personalid: "Please enter an ID to check" }; 
     /* Show errors on the form */ 
     $validator.showErrors(errors);    
    }   
}); 

例:http://jsfiddle.net/andrewwhitaker/XjZer/

何もpersonalidフィールドに存在しない場合、フォームがまだ提出されることに注意してください。

+0

私は同じ問題があります多次元名のエラーをどのようにトリガーできますか?私はあなたの解決策でこれを解決できませんでした。例えば 'field =" email "; var element = "data [User] [" + field + "]";エラー= {要素:field_error}; $ validator.showErrors(エラー); ' – Parixit