簡體   English   中英

將驗證方法添加到“ jquery驗證插件”

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM