fiftyCents()
2つのルールがある場合に呼び出されるカスタムjQuery検証ルールがあります。
- アイテムが無料の場合、0.00ドルで「購入」するか、0.50ドル以上支払うことができます。
- アイテムが無料でない場合は、少なくとも指定されたコスト(非表示の
cachedValue
入力フィールドに保存されている)を支払う必要があります。
これが私の2つの検証エラーメッセージです。これらを追加する際に私が抱えている問題fiftyCents()
は、それをtrue / falseとして評価する方法しか理解できず、falseの場合、単一のメッセージを表示すること"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>