2012-01-24 28 views
1

我被jQueries驗證插件卡住jQueries驗證插件始終顯示在輸入

我的輸入總是給我一個錯誤。代碼你可以在這裏找到:http://jsfiddle.net/OrangeTux/6zUMd/1/

我想創建一些自定義規則,如郵政編碼,電話號碼和一些其他具體的數字。因此,我爲正則表達式規則創建了一個新方法。此規則正常工作。

$.validator.addMethod("regexp", function(value, element, param) { 
    return this.optional(element) || !param.test(value); 
}); 

之後,我創建了一個新的方法:

jQuery.validator.addMethod('postalCode', function(value, element) {});

然後我用創建一個新的類,並添加規則

//add validation rules for each custom method 
jQuery.validator.addClassRules({ 
    postalCode: { 
     'postalCode' : true, 

     //regexp: /[^[0-9]{10}$]/, //<---- This regex doesn't work 
     //email: true    // <----- This rule doens't work either 
    } 
}) 

我怎樣才能解決這個問題?

+0

您沒有定義的'postalCode'規則的實現。 ..你想要什麼/期望它做什麼? –

+0

我希望它能檢查class =「postalcode」字段的輸入是否與正則表達式匹配(regexp:/ [^ [0-9] {10} $] /)。如果輸入不匹配正則表達式,我想顯示一個錯誤。 – OrangeTux

回答

1

你有一些東西有點倒退。首先,regex規則並不完全正確。您希望在規則傳遞給從方法返回true,所以你應該返回:

return this.optional(element) || param.test(value); 

除此之外,雖然,首選的方式添加自定義規則這樣是使用addMethod,然後addClassRules添加其包括方法類規則:

jQuery.validator.addMethod("postalCode", function (value, element, params) { 
    return this.optional(element) || /^[0-9]{10}$/.test(value); 
}, "Please enter a valid Postal Code"); 

//add validation rules for each custom method 
jQuery.validator.addClassRules({ 
    postalCode: { 
     postalCode: true 
    } 
}); 

$("#form").validate({ 
    debug: true, 

    //set place were error is shown 
    errorPlacement: function(error, element) { 
     error.appendTo(element.parent("td").next("td")); 
    }, 
}); 

實施例:http://jsfiddle.net/LCA9C/

+0

不錯,這個工程。後續問題。我希望這個字段是必需的。但是,當我向addClassRules方法添加'required:true'時,它只顯示連接到所需規則的錯誤消息:'請提供一些數據'。有什麼方法可以顯示2條規則的消息嗎? – OrangeTux

+0

得到了所有的東西。 – OrangeTux

相關問題