当复选框更改时,jQuery验证文本字段

时间:2012-05-29 08:10:06

标签: jquery jquery-plugins jquery-validate

我有一个包含以下两个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中实现。

2 个答案:

答案 0 :(得分:5)

我通过电子邮件发送的另一个答案是:

  

isOI是我的复选框,而Item是我需要重新验证的文本框   单击复选框时。

$("#isOI").change(function () {
  var item = $("#Item");
  item.data("previousValue", null).valid();
});

显然现有的答案对这个人不起作用。

答案 1 :(得分:0)

您可以在更改复选框

时调用验证功能
$(':checkbox').change(function(){
    $('form').validate();
});