フォームを検証するために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を使用しています
私は自分でこの問題に遭遇しました。私の髪を1時間引き出しましたが、ここにあります:
そこにも「name」属性をスローすると、うまくいく可能性があります。
Jquery.validate()
関数を使用して検証するすべてのDOM要素にname
属性を入力する必要があります。
アラートが両方のフィールドの検証をブロックしていると思います。 1つのアラートの後、残りのJavaScriptは停止します。代わりに$('#questionForm').validate();
を使用するとどうなりますか?
使用している検証プラグインがわからないと、問題を特定することは困難です。ただし、jQueryは各フィールドをループしていないように見えますが、無効なフィールドに到達すると停止します。 jQuery $.each()
メソッドを使用し、いくつかの条件を使用して、バリデーターが無効なフィールドに到達したときに検証プロセスが停止しないことを確認してください。
お役に立てば幸いです。
spryno724