2010-02-18 27 views
10

Tôi đang sử dụng plugin jquery datepicker tại http://plugins.jquery.com/project/datepick với plugin xác thực ngày tháng.Vấn đề về thông báo xác thực ngày thanh công cụ jQuery

<script id="frmValidation" type="text/javascript"> 

$(document).ready(function(){ 
    var validator = $("#frmTest").validate({ 
     rules:{ 
      fname: "required", 
      dobPicker: "required" 
     }, 
     messages:{ 
      fname: "Please enter a name", 
      dobPicker: "Select a date" 
     }, 

    }); 
    $('#dobPicker').datepick(); 
    $.datepick.setDefaults({showOn: 'both', dateFormat: 'dd-mm-yy', yearRange:'1900:2010'}); 
}); 
</script> 

Và phần thân của tài liệu như sau:

<form id="frmTest" action="" method="post"> 
<div id="error-list"></div> 
<div class="form-row"> 
<span class="label"><label for="fname">Name</label></span> 
<input type="text" name="fname" /> 
</div> 
<div class="form-row"> 
<span class="label"><label for="dobPicker">DOB</label></span> 
<input type="text" id="dobPicker" name="dobPicker" style="margin-left: 4px;"/> 
</div> 
<div class="form-row"> 
<input type="submit" name="submit" value="submit"/> 
</div> 
</form> 

Hình thức xác nhận lần đầu tiên nhưng được thông báo lỗi cho datepicker không biến mất ngay lập tức một ngày được chọn .. tuy nhiên nó đi đi nếu ngày được chọn lần thứ hai. Bất kỳ sự giúp đỡ để làm cho nó đi lần đầu tiên một ngày được chọn sẽ được đánh giá

+0

Tôi cảm thấy đó là một cái gì đó để làm với các sự kiện datepicker tạo, các plugin xác nhận xác nhận chỉ vào các sự kiện nhất định .. – Abhishek

+0

Xem này cho biết thêm: https://github.com/ posabsolute/jQuery-Validation-Engine/issues/70 –

Trả lời

21

Bạn muốn thiết lập này trong giá trị mặc định datepicker của bạn:

onClose: function() {$(this).valid();}, 

Ngay sau khi một ngày khác được chọn nó sẽ làm cho các plugin validator kiểm tra lại trường.

+0

Tuyệt vời !! Điều đó làm việc :) Cảm ơn. – Abhishek

+7

Bạn có thể thực sự muốn thực hiện 'onSelect: function() {$ (this) .valid(); } ', nếu không, nếu bạn không muốn xác nhận kích hoạt cho đến khi biểu mẫu được gửi, nếu người đó mở trình dữ liệu (bằng cách đặt tiêu điểm cho trường), thông báo lỗi xác thực sẽ kích hoạt khi chúng đặt tiêu điểm cho một trường khác. Nếu bạn đặt nó vàoChọn, nó sẽ đánh dấu trường hợp lệ khi chúng thực sự chọn một giá trị. – JustinP8

3

"Câu trả lời hay nhất" không phù hợp với tôi. Tôi đã xác định rằng trình xác thực đã xác thực định dạng ngày mặc dù tôi không yêu cầu. Đây là giải pháp của tôi:

$('form').validate(
    rules: 
    { 
     MyDateControl:{ 
      required:true, 
      date:false 
     } 
    } 
); 
Các vấn đề liên quan