我有一个名为的自定义 jQuery 验证规则fiftyCents()
,其中有两个规则:
- 如果该项目是免费的,人们可以以 0.00 美元的价格“购买”它,或者他们可以支付超过 0.50 美元。
- 如果该项目不是免费的,那么他们必须至少支付指定的费用(存储在隐藏的
cachedValue
输入字段中)。
所以这是我的两个验证错误消息。我在添加这些时遇到的问题fiftyCents()
是,我只能弄清楚如何将其评估为真/假,如果为假,则显示一条消息,例如"Amount must be $0.00 OR greater than $0.50."
.
JSfiddle (下面的代码)的解决方案似乎是制作一个message
可以成为fiftyCents()
函数一部分的对象。但是,我不知道如何return
评估true/false
. 想法?
JS:
$('button').click(function(){
$('form').validate().form();
});
$.validator.addMethod("fiftyCents", function(value) {
var cachedValue=$('.purchaseModalAmtPaidCached').val();
var value = $('.purchaseModalAmtPaid').val();
var message="Amount must be $0.00 OR greater than $0.50.";
if(cachedValue>0) message='Amount must be at least'+cachedValue+'.';
return cachedValue<=value && (value==0 || (0.51<=value && value<=10000));
}, message);
$.validator.classRuleSettings.purchaseModalAmtPaid = { fiftyCents: true };
HTML:
<form>
<input class="purchaseModalPassword required" minlength="8" type="password"name="password" value="dddddddv" title="Please enter a valid password" />
<input type="text" title="Amount must be $0.00 OR greater than $0.50"
class="required purchaseModalAmtPaid" name="amt_paid" value="" />
<input type="hidden" class='purchaseModalAmtPaidCached required' name="AmtPaidCached" value="0.00" />
<button type='button'>Buy</button>
</form>