4

次の2つの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');
              }
            }
          }
        }

テキストフィールドで実行される検証は、外部登録がチェックされているかどうかに依存するため、リモートスクリプトは両方のフィールドに依存します。

問題は、テキストフィールドに何かを入力してからチェックボックスを変更すると、検証ルールが再実行されないことです。これは、検証ルールがテキストフィールドにのみ添付されているため、変更された場合にのみ実行されるためだと思います。

「これらの2つの要素は関連しているので、どちらかが変更された場合は、テキストフィールドのルールを再度チェックする必要があると想定する」と言う方法はありますか?チェックボックスに検証ルールを添付したくないのは、クライアント側で検証する必要がなく、リモートスクリプトによって実行される検証ルールが複雑すぎて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 に答える