我试图在一个字段上有一个动态更新的最小值,具体取决于来自其他字段的输入.简而言之,我的代码是:
$("#new_project").live("click", function() {
switch($('input:radio[name=quality-level]:checked').val()){
case 'average' : ppw = .006;
case 'below-average' : ppw =.004;
case 'good' : ppw = .008;
case 'very-good' : ppw = .016;
}
if ($('#minimum-word-length').val() && $('input:radio[name=quality-level]:checked').val())
{
min_price = $('#minimum-word-length').val() * ppw;
}
$("#new_project, .edit_project").validate({
rules: {
...
"price-per-article": {required: true, number: true, min:min_price},
...
},
errorPlacement: function(error, element) { }
});
});
最低价格设置正确,并正确更新.也就是说,无论出于何种原因,最小值规则都不会更新我认为是因为验证代码仅加载在文档加载上.所以我猜有没有办法重新加载规则,以便在填充两个必要字段时最小值发生变化?
谢谢!
解决方法:
问题是您在初始加载时使用每篇文章的价格设置验证对象.我不熟悉验证插件,但一般情况下,如果您的属性实时更改了对象,您将需要为该属性使用回调函数,而不是在加载时设置它的数据.
因此,对于每篇文章的价格,它可能看起来像:
"price-per-article": {
required: true,
number: true,
min: function () { return $('#minimum-word-length').val() * ppw; }
}