web-dev-qa-db-ja.com

jQuery Validateプラグイン-単一フィールドの検証のトリガー

オプションとして、facebook connectを介して事前に入力できるフォームがあります。ユーザーが接続すると、名前と電子メールが自動的に入力されます。問題は、電子メールが既に存在するかどうかを確認するためのリモート検証がトリガーされないことです。

そのフィールドだけで検証を呼び出す方法はありますか?何かのようなもの:

$('#email-field-only').validate()

アイデアになります。運よくドキュメントを検索しました。

82
ryan

このメソッドはあなたが望むことをするようです:

$('#email-field-only').valid();
140
Gregoire

何らかの理由で、他のメソッドの一部は、フィールドがフォーカス/ぼかし/変更されるか、送信が試行されるまで機能しません...これは私にとってはうまくいきます。

$("#formid").data('validator').element('#element').valid();

それを見つけるためにjquery.validateスクリプトを調べなければなりませんでした...

20
Tracker1

Validator.element() を使用します。

単一の要素を検証し、有効な場合はtrueを返し、そうでない場合はfalseを返します。

APIに表示される例を次に示します。

_var validator = $( "#myform" ).validate();
validator.element( "#myselect" );
_

.valid() は、他の人が指摘したように、フォーム全体を検証します。 APIは言う:

選択したフォームが有効かどうか、または選択したすべての要素が有効かどうかを確認します。

16
Paul
$("#FormId").validate().element('#FieldId');
12
aslanpayi

個々のフォームフィールドを検証したいが、UIをトリガーして検証エラーを表示したくない場合は、特定のフィールドが検証に合格したかどうかを返すValidator.check()メソッドを使用することを検討できます。

ここに例があります

var validator = $("#form").data('validator');
if(validator.check('#element')){
    /*field is valid*/
}else{
    /*field is not valid (but no errors will be displayed)*/
}
7
Dmitry Komin

検証を設定するときは、検証オブジェクトを保存する必要があります。これを使用して、個々のフィールドを検証できます。

<script type="text/javascript">
var _validator;
$(function () {    
     _validator = $("#form").validate();   
});

function doSomething() {    
     _validator.element($('#someElement'));
}
</script> 

-クロス投稿 この類似の質問

6
ShaneBlake