[英]Add validation method to “jquery validation plugin”
您好,我使用jquery驗證插件來驗證我的表單。 我想為驗證添加更多規則,但無法使其正常工作。 輸入值應小於或等於先前的元素值。
有可能做到嗎?
這是代碼-
<input type='text' value='<?php echo $count; ?>' class='input_in_stock' readonly="readonly" />
<input type='text' name='amount[]' id='<?php echo rand(0,99).$id; ?>' size='1' value='<?php echo $count; ?>' class='required input_count' />
$(document).ready(function(){
$.validator.addMethod('positiveint', function (value) {
return (value > 0) && (value != 0) && (value == parseInt(value, 10));
}, 'Enter a positive integer value.');
$.validator.addMethod('notmorethan', function (value) {
return (value <= $(this).prev().val());
}, 'abc.');
$("#cartform").validate({
rules: {
"amount[]": {
required: true,
positiveint: true,
notmorethan: true
}
},
errorPlacement: function(error, element) {
error.appendTo(element.next());
}
});
});
ps:我使用了這個jquery驗證插件修復程序,使它可以使用這樣的名稱[] http://www.codeboss.in/web-funda/2009/05/27/jquery-validation-for-array-of-input-元素
編輯:找到了解決方案
$.validator.addMethod('notmorethan', function (value, element) {
return (value <= $(element).prev().val() );
}, 'abc');
看看這個小提琴是否有幫助-http: //jsfiddle.net/alokswain/LSuMA/11/ 。 我不確定您使用的自定義方式來使用諸如amount[]
類的名稱,但是我想這種方法應該可以工作。
定制驗證方法只是函數,如果在函數主體中使用this
函數,則它將引用函數的所有者。 現在假設您要從輸入字段中獲取先前有效的值,則可以在整個表單有效時將其存儲在DOM中的某處,例如,先前存儲的值稱為previousAmountVal
。 當字段中的值發生變化,在功能notmorethan
您可以使用訪問當前值value
參數和以前存儲的值,並使用以前的值previousAmountVal
,從而決定當前值是否有效。 此外,如果這樣做,請記住在表單有效時始終更新previousAmountVal
。
找到了解決方案
$.validator.addMethod('notmorethan', function (value, element) {
return (value <= $(element).prev().val() );
}, 'abc');
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.