かなり大規模なフォームの検証を実現しようとしています。場合によっては、検証するためにさまざまな入力値を比較(条件付け)する必要があります。
次の例を示します。
function frmDealValidation () {
var validator = $("#frmDeal").validate({
rules: {
product_value: {
required: true,
number: true,
min: 0.01,
}
price: {
required: true,
number: true,
min: 0.01,
max: ($("#show_value1").is(':checked')) ? $("#product_value").val() : 1000000
}
},
submitHandler: function(form) {
form.submit();
}
});
}
上記のように、max-checkはチェックされたラジオボタンに依存し、値を返します。つまり、価格が実際のproduct_valueより大きくなることは許可されていません。
入力された価格がproduct_valueより大きいと仮定すると、最初のフォームの送信後に検証が正常に機能します。
これで、入力の値を変更して間違いを修正できます。または、愚かである場合は、無効な値を再度入力して、送信ボタンを押します(呼び出しfrmDealValidation ()
)。
残念ながら、検証はからの値を更新せず$("#product_value").val()
、最初の送信からキャッシュされた値を使用しているようです。
validator.resetForm();
フォーム全体を更新された値で再検証することを検証に強制すると思ったので試しましたが、成功しませんでした!
助けを求めてもいいですか?
乾杯、
Norbert