2012-07-18 151 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" />