これは有効な問題です。このマークアップでは
<form>
<div>
Male:
<input type="radio" name="gender" value="male" />
Female:
<input type="radio" name="gender" value="female" /></div>
<br />
<div>
Pregnant:
<input type="radio" name="pregnant" value="yes" />
Not Pregnant:
<input type="radio" name="pregnant" value="no" /></div>
<br />
<input type="submit" />
</form>
そしてこのスクリプト
$('[name=gender]').click(function () {
var disabled = $(this).val() === 'male';
$('[name=pregnant]').attr('disabled', disabled);
// UNCOMMENT THIS TO FIX
// if ($('[name=pregnant]').hasClass('error')) {
// $('form').validate().form();
// }
});
$('input').addClass('required');
$('form').validate({
ignore: ":disabled",
errorPlacement: function (error, element) {
error.appendTo(element.parent("div"));
},
submitHandler: function () {
alert('form is ok');
}
});
問題を再現するには:
- クリック女性
- 送信をクリック
- エラーメッセージが表示されます - これは正しいです
- 男性をクリック - エラーメッセージがまだ表示される
- 送信をクリック - フォームは有効です
@ioan が言うように、このエラー メッセージは紛らわしいので、試して取り除く必要があります。フォームは有効ですが、エラー メッセージはまだ表示されています。