jQuery Validate Plugin-単一フィールドの検証をトリガー


89

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

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

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

アイデアでしょう。運が悪くドキュメントを検索しました。

回答:


146

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

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

4
注:フォーム要素名もこの機能で動作する、すなわち$('input[name=email-field-only]').valid();も動作します
ラプター

1
何が問題ですか?この方法を使用すると、検証が
失敗し

2
このソリューションは、フォーム全体を検証し、すべてのフィールドのエラーメッセージを表示します。
パブロ

@haemhweg、多分あなたは.valid()を使用する前に.validate()メソッドを呼び出さなかったのですか?ドキュメント:jqueryvalidation.org/valid
userfuser


23

使用Validator.element()

単一の要素を検証し、有効な場合はtrue、それ以外の場合はfalseを返します。

以下は、APIに表示される例です。

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

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

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


20

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

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

それを見つけるためにjquery.validateスクリプトを掘り下げる必要がありました...


1
これは私にとってはうまくいったもの.valid()であり、最後に追加したので$("#Form").data('validator').element('input[name=__Suburb]').valid(); 、IDで選択しない場合はこれが必要になる可能性があると思いました。
Mihai P.

2
.valid()表現の終わりには属していないと思います。この.element()関数はブール値の結果を返します(docs | src)。.valid()を呼び出そうとすると、「Uncaught TypeError:$(...).data(...).element(...).validis not a function」
KyleMit

バリデーターをフォームに添付しましたか?JQuery検証を使用してから数年になります...したがって、このAPIが変更された可能性があります。当時、私は内部を調べて上記を見つける必要がありました。それはドキュメンテーションでは公開されていなかったので、私が最後に見た後で構造が変わっているかもしれません。
Tracker1

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

2
私はこの方法を好む、それは素晴らしい1ライナーです。ありがとうございます。
アンディ

1
これは、有効な戻り型でエラーなしの完全な答えです
Kaushik Thanki

7

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

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

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

- この同様の質問とクロス投稿


7

個々のフォームフィールドを検証したいが、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)*/
}

0

フォームの「一部の要素」(すべての要素ではない)の検証を実行したい場合。このメソッドを使用できます。

$('input[name="element-one"], input[name="element-two"], input[name="element-three"]').valid();

それがみんなを助けることを願っています:)

編集済み


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.