2016-01-21 83 views
1

我有x個具有相同類名的文本框。我希望用戶在其中輸入日期,每個日期應該比前一個日期更大。我怎樣才能做到這一點?jQuery驗證 - 比較同一類的值

的jQuery -

jQuery.validator.addMethod("greaterrule", function(value, element, param) { 
    return $(param).not(element).get().every(function(item) { 
    return $(item).val() < value; 
}); 
}, "Please specify a greater value"); 


jQuery.validator.addClassRules("dept_date", { 
    greaterrule: ".dept_date" 
}); 

HTML -

First Date <input type="text" name="first_date" class="dept_date"> <br> 
Second Date <input type="text" name="second_date" class="dept_date"> <br> 
Third Date <input type="text" name="third_date" class="dept_date"> <br> 
Fourth Date <input type="text" name="fourth_date" class="dept_date"> <br> 
+0

在textchange事件或任何它是,寫入邏輯來比較它與以前的文本框條目。 –

+0

使用'.prev(「.dept_date」)'獲得dept_date類的前一個元素 –

+0

是克隆的文本框? – mmr

回答

1

嘗試使用prevAll前要檢查所有的日期和使用Date比較: -

jQuery.validator.addMethod("greaterrule", function(value, element, param) { 
 

 
    return $(element).prevAll(param).get().every(function(prev) { 
 
     return new Date($(prev).val()) < new Date($(element).val()); 
 
    }); 
 

 
}, "Please specify a greater value"); 
 

 

 
jQuery.validator.addClassRules("dept_date", { 
 
    greaterrule: ".dept_date" 
 
}); 
 

 
$("form").validate();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.14.0/jquery.validate.min.js"></script> 
 

 
<form method="post"> 
 
    First Date 
 
    <input type="text" value="01/21/2016" name="first_date" class="dept_date"> 
 
    <br>Second Date 
 
    <input type="text" value="01/22/2016" name="second_date" class="dept_date"> 
 
    <br>Third Date 
 
    <input type="text" value="01/23/2016" name="third_date" class="dept_date"> 
 
    <br>Fourth Date 
 
    <input type="text" value="01/24/2016" name="fourth_date" class="dept_date"> 
 
    <br> 
 
    <input type="submit" value="submit" /> 
 
</form>

+0

'param'參數完全沒有意義,因爲在聲明此規則時沒有設置參數。 – Sparky

+0

你可以解釋一下,請@Sparky多一點,因爲'param'是從'addClassRules'傳入的'.dept_date'。 – BenG

+0

@ BG101 - 不起作用 – Zero4