我正在尝试验证名为promoRent的字段,如果只输入了一个数字。它不是必填字段,但如果输入则必须大于lotRent。我有:
jQuery.validator.addMethod("PRgreaterThanLotRent", function(value, element) {
return parseFloat($("#lotRent").val().replace(/[^\d\.]/g, '').replace(['.00'],'')) < parseFloat($("#promoRent").val().replace(/[^\d\.]/g, '').replace(['.00'],''));
});
$("#pricingForm").validate({
rules: { salesPrice: "required",
Rent: { required: true, greaterThanLotRent : true },
promoRent : { required: function() { if ($("#promoRent").val() != '') { PRgreaterThanLotRent : true }; } }
},
messages: { salesPrice: "<br/><span style='color:red'>Required!</span>",
mhRent: { required: "<br/><span style='color:red'>Required!</span>",
MHgreaterThanLotRent : "<br/><span style='color:red; '>Must be greater<br> than Lot Rent</span>" } ,
promoRent : { required: "",
PRgreaterThanLotRent : "<br/><span style='color:red; '>Must be greater<br> than Lot Rent</span>" }
}
}).form();
我正在做一些愚蠢的事情,因为即使我输入的数量少于许多,验证也不会运行。有任何想法吗?提前谢谢。
答案 0 :(得分:0)
这很有效。
,promoRent : { PRgreaterThanLotRent : true }
然后修改PRgreaterThanLotRent函数,如下所示:
jQuery.validator.addMethod("PRgreaterThanLotRent", function(value, element) {
if ($("#promoRent").val() != '') {
return parseFloat($("#lotRent").val().replace(/[^\d\.]/g, '').replace(['.00'],'')) < parseFloat($("#promoRent").val().replace(/[^\d\.]/g, '').replace(['.00'],''));
} else {
return true;
}
});
sweeeeeeet ......