这是一个有效的问题,与此标记
<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说,你需要尝试摆脱此错误消息作为这是混乱的,虽然形式是有效的错误消息仍然存在
因为MALE从不pragnent所以“怀孕吗?”为无效 –
是的,如果性别是男性,“是怀孕吗?”已禁用,不应验证。但它仍然被验证> _ < – trafalgar
我认为你仍然需要忽略':disabled',因为你正在关闭它而不是隐藏它? –