4

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

4

2 回答 2

6

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

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

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

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

于 2014-03-22T14:48:26.410 回答
1

您可以在更改复选框时调用验证功能

$(':checkbox').change(function(){
    $('form').validate();
});
于 2012-05-29T08:58:39.773 回答