我即将实现一个相当庞大的表单的验证。在某些情况下,我必须比较(条件)不同的输入值来验证。
给出以下示例:
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();
,因为我认为它会强制验证重新验证整个表单并使用更新的值,但没有成功!
我可以寻求帮助吗?
干杯,
诺伯特