2012-07-18 153 views
2

我想在表单上动态地指定一些规则。在这种形式我有三个文本框输入(Text1Text2Text3)和一个复选框(Check1jQuery复杂验证规则

我将配置以下规则:

  1. 规则Text2:本场应该是一个正数带2个十进制数字,其值应等于或大于Text1

  2. 规则Text3:该字段应为具有2位十进制数字的数字。此外:

    一个)的Text3的值必须等于零,如果Check1选择

    B)的Text3的值必须小于或等于Text1和小于或等于Text2如果未选择Check1

如何在jQuery Validation插件中表达这些规则?有什么建议?

UPDATE: 这是(1)的基本规则。它错过了等于或greather部分:

$('#Text2').rules('add', { 
    required: true, 
    min: 0.0, 
    number: true, 
    messages: { 
     required: 'Message 1', 
     min: 'Message 2', 
     number: 'Message 3' 
    } 
}); 

回答

3

您可以使用$ .validator.addMethod的..

例如,

$.validator.addMethod("decimal", function(val, element){return /\d*(\.\d+)?/.test(val)}, "Should enter only numericals."); 

上述方法只是检查小数。

我们可以通过在类的名称,如

<input type="text" class="required decimal" /> 

在你的情况,你需要检查的值是否大于文本1大于增加的第一个参数名称中使用这一点,所以我们可以做到这一点作为

$.validator.addMethod("text2validator", function(val, element){if(val > $("#text1").val())return true;}, "Value should be greater than text1") 

<input type="text" id="text1" value="10" /> 
<input type="text" id="text2" class="required decimal text2validator" />