次の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に実装できないためです。