web-dev-qa-db-ja.com

jQueryvalidateは1つのフィールドのみを検証します

フォームを検証するためにjQueryvalidateを使用しています。フォームに2つのテキストボックスがあり、最初の1つだけに「このフィールドは必須です」が追加されます。メッセージ。最初のクラスから「required」クラスを削除すると、2番目のクラスにメッセージが表示されます。

html:

<form id="questionForm">
<div><input class="required" id="value" type="text" /></div>
<div><textarea class="required" id="description"></textarea></div>
<button type="submit">Save</button>
</form>

javascript:

$("#questionForm").validate({ submitHandler: function() { 
        alert("valid");
    } 
});

検証されているのはなぜ1つだけですか?

編集:jQuery検証プラグイン1.7を使用しています

編集2:MVC3を使用しています

43
Andrew Boes

私は自分でこの問題に遭遇しました。私の髪を1時間引き出しましたが、ここにあります:

そこにも「name」属性をスローすると、うまくいく可能性があります。

122
Jay

Jquery.validate()関数を使用して検証するすべてのDOM要素にname属性を入力する必要があります。

2
Sulabh Singla

アラートが両方のフィールドの検証をブロックしていると思います。 1つのアラートの後、残りのJavaScriptは停止します。代わりに$('#questionForm').validate();を使用するとどうなりますか?

1
Joshua - Pendo

使用している検証プラグインがわからないと、問題を特定することは困難です。ただし、jQueryは各フィールドをループしていないように見えますが、無効なフィールドに到達すると停止します。 jQuery $.each()メソッドを使用し、いくつかの条件を使用して、バリデーターが無効なフィールドに到達したときに検証プロセスが停止しないことを確認してください。

お役に立てば幸いです。
spryno724

1
Oliver Spryn