我有一个包含以下两个HTML元素的表单:
<input type="text" name="vrm" id="vrm" size="15" maxlength="15" value="" />
<input type="checkbox" id="foreign_registration" name="foreign_registration" value="yes" />
以及以下jQuery验证规则(使用此处的验证插件:http://bassistance.de/jquery-plugins/jquery-plugin-validation/):
vrm: {
remote: {
url: "/json/vrm-validate.php",
data: {
foreign_registration: function() {
return $('#foreign_registration').is(':checked');
}
}
}
}
远程脚本依赖于这两个字段,因为在文本字段上执行的验证取决于是否选中了外部注册。
问题是,如果我在文本字段中输入内容然后更改复选框,则不会重新运行验证规则。我认为这是因为验证规则仅附加到文本字段,因此只有在更改时它才会运行。
有没有办法说'这两个元素是相关的,所以如果它们中的任何一个改变,则假定应该再次检查文本字段规则'?我不想将任何验证规则附加到复选框,因为它不需要在客户端验证,并且远程脚本执行的验证规则太复杂,无法在jQuery中实现。
答案 0 :(得分:5)
我通过电子邮件发送的另一个答案是:
isOI是我的复选框,而Item是我需要重新验证的文本框 单击复选框时。
$("#isOI").change(function () {
var item = $("#Item");
item.data("previousValue", null).valid();
});
显然现有的答案对这个人不起作用。
答案 1 :(得分:0)
您可以在更改复选框
时调用验证功能$(':checkbox').change(function(){
$('form').validate();
});