オプションとして、facebook connectを介して事前に入力できるフォームがあります。ユーザーが接続すると、名前と電子メールが自動的に入力されます。問題は、電子メールが既に存在するかどうかを確認するためのリモート検証がトリガーされないことです。
そのフィールドだけで検証を呼び出す方法はありますか?何かのようなもの:
$('#email-field-only').validate()
アイデアになります。運よくドキュメントを検索しました。
このメソッドはあなたが望むことをするようです:
$('#email-field-only').valid();
何らかの理由で、他のメソッドの一部は、フィールドがフォーカス/ぼかし/変更されるか、送信が試行されるまで機能しません...これは私にとってはうまくいきます。
$("#formid").data('validator').element('#element').valid();
それを見つけるためにjquery.validateスクリプトを調べなければなりませんでした...
Validator.element()
を使用します。
単一の要素を検証し、有効な場合はtrueを返し、そうでない場合はfalseを返します。
APIに表示される例を次に示します。
_var validator = $( "#myform" ).validate();
validator.element( "#myselect" );
_
.valid()
は、他の人が指摘したように、フォーム全体を検証します。 APIは言う:
選択したフォームが有効かどうか、または選択したすべての要素が有効かどうかを確認します。
$("#FormId").validate().element('#FieldId');
個々のフォームフィールドを検証したいが、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)*/
}
検証を設定するときは、検証オブジェクトを保存する必要があります。これを使用して、個々のフィールドを検証できます。
<script type="text/javascript">
var _validator;
$(function () {
_validator = $("#form").validate();
});
function doSomething() {
_validator.element($('#someElement'));
}
</script>
-クロス投稿 この類似の質問