[英]Validate select box with own custom message and rule in Jquery validation plugin
[英]Customizing the message in a jQuery validate custom rule
我有一個名為fiftyCents()
的自定義jQuery驗證規則,其中有兩個規則:
cachedValue
輸入字段中)。 這就是我的兩個驗證錯誤消息。 我將它們添加到fiftyCents()
遇到的問題是,我只能弄清楚如何將其評估為true / false,如果為false,則顯示一條消息,例如, "Amount must be $0.00 OR greater than $0.50."
。
JSfiddle (也是下面的代碼)的解決方案似乎是制作一個message
對象,該對象可以是fiftyCents()
函數fiftyCents()
函數的一部分。 但是,我不知道如何將其與評估true/false
一起return
。 有什么想法嗎?
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>
好吧,我回答了我自己的問題。 我最終要做的是將這兩個規則拆分成自己的自定義方法。 在調用任一自定義方法之前,我先使用了if/else
來確定應遵循這兩者中的哪一個。
這是下面的JSFiddle和代碼:
JS:
$('button').click(function(){
$('form').validate().form();
});
var params=$('.purchaseModalAmtPaidCached').val();
if(params>0){
$.validator.addMethod("AmountOrGreater", function(value, element, params) {
console.log('amountOrGreater'+params[0]);
return params[0]<=value && (value==0 || (0.51<=value && value<=10000));
}, $.validator.format("Amount must be at least {0}."));
$.validator.classRuleSettings.purchaseModalAmtPaid = { AmountOrGreater: params };
}
else{
$.validator.addMethod("fiftyCents", function(value, element, params) {
console.log('fiftyCents'+params[0]);
return params[0]<=value && (value==0 || (0.51<=value && value<=10000));
}, "Amount must be $0.00 OR greater than $0.50.");
$.validator.classRuleSettings.purchaseModalAmtPaid = { fiftyCents: params };
} //else
HTML:
<form>
<input class="purchaseModalPassword required" minlength="8" type="password" name="password" value="dddddddv" title="Please enter a valid password" />
<input type="text"
class="required purchaseModalAmtPaid" name="amt_paid" value="" />
<input type="hidden" class='purchaseModalAmtPaidCached required' name="AmtPaidCached" value="0.00" />
<button type='button'>Buy</button>
</form>
注意:與jQuery配合使用的HTML的一個關鍵是,如果您為輸入提供一個title=''
屬性,那么將始終使用該標題,從而覆蓋自定義規則中的消息。 在我的情況下,這很重要b / c有兩個自定義規則/消息,並且我無法在呈現HTML之前預先確定用戶會看到哪一個。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.