2013-02-27 71 views
1

我有和引導datetimepicker在我的形式,這是一個必填字段填充我的網頁的其餘部分。使複選框導致jQuery驗證

我可以設法在我使用提交按鈕時進行驗證,但我有一個複選框,它使用來自datetimepicker的值填充字段。

我需要複選框來導致沒有提交的datetimepicker驗證。

我的代碼看起來是這樣的:

//My datepicker 
<div id="dtpDate" class="input-append" > 
    <input required data-format="yyyy-MM-dd" type="text" style="width: 75%;" /> 
    <span class="add-on"> 
     <i data-time-icon="icon-time" data-date-icon="icon-calendar"></i> 
    </span> 
</div> 

//Checkbox to cause validation 
<div> 
    <input type="checkbox" data-bind="checked: setdate, click: setdates"/> 
</div> 


//My Script 
$(document).ready(function() { 
    $("form").validate(); 
}); 

$(function() { 
    $('#dtpDate').datetimepicker({ 
     pickTime: false 
    }) 
}); 

如何讓我的複選框原因驗證? (不提交)

Thanx提前

回答

1

使用.valid()在點擊驗證文本字段的複選框。

jQuery的

$(document).ready(function() { 

    $("form").validate({ 
     // your options & rules 
    }); 

    $('#mycheck').click(function() { 
     $('#myfield').valid(); 
    }); 

}); 

HTML

<form> 
    <input required="required" type="text" name="myfield" id="myfield" /> 
    <input type="checkbox" name="mycheck" id="mycheck" /> 
    ... 
</form> 

工作演示:http://jsfiddle.net/rzjRM/

1

編輯:這是工作在的jsfiddle已經過測試。

<form> 
<div> 
    <input required type="text" /> 
</div> 
<div> 
    <input type="checkbox" class="checkBox" /> 
</div> 
<div> 
    <input type="submit" /> 
</div> 
</form> 

的JavaScript

//My Script 
$(document).ready(function() { 

    $('.checkBox').click(function(){ 
     if($(this).is(':checked')){ 
      $('form').valid(); 
     } 
    }); 
}); 

$(function() { 
    $('#dtpDate').datetimepicker({ 
     pickTime: false 
    }); 
}); 
+0

它仍然不會導致jQuery驗證? – 2013-02-27 09:46:49

+0

這裏是一個小提琴來解釋:http://jsfiddle.net/gwmav/ – 2013-02-27 09:54:53

+0

你使用像淘汰賽一樣的MVVM庫嗎? – 2013-02-27 10:13:18

1

爲了驗證你的時間字段通話.valid()你叫後的validate()

$(document).ready(function() { 
    // initialise validation 
    $("form").validate(); 

    // validated the datetime field on checkbox click 
    $('#your_checkbox_id').click(function() 
     $('#your_datetime_field').valid(); 
    }); 
});