2013-03-25 51 views
1

我在使用jQuery移動日期框時遇到了jQuery驗證問題。jquery使用jQuery移動日期框驗證(mobiscroll)

我有我的驗證設置爲:

onkeyup: false 

我相信這會觸發焦點/模糊(標籤)事件的確認,而不是。

問題是,當我使用datebox選擇器設置日期時,它似乎不會觸發此事件,因此如果我將datebox的日期設置爲「required」並填寫完畢,則錯誤消息仍然存在顯示...

編輯:

這裏是我的小提琴:

http://jsfiddle.net/3v2ZV/

HTML

<form id="my_form" method="post"> 
    <input name="name" id="full-name" data-theme="a" placeholder="Name" class="required"> 
    <input name="athlete_datebox" id="athlete_datebox" data-theme="a" placeholder="Date of Birth" class="required"> 
    <input type="submit" value="submit"> 
</form> 

JS

$(document).ready(function() { 
    $('#my_form').validate({ 
     onkeyup: true 
    }); 
    $('#athlete_datebox').mobiscroll().date({ 
     theme: 'jqm', 
     display: 'modal', 
     mode: 'clickpick', 
     dateOrder: 'mmD ddyy', 
     dateFormat: 'yy-M-dd', 
     endYear: 2034 
    }); 
    $('#my_form').on('submit', function (event) { 
     event.stopPropagation(); 
     event.preventDefault(); 
     if ($('#my_form').valid()) { 
      alert('is valid'); 
     } 
    }); 
}) 

如果你點擊「提交」填寫任何東西之前,你看到的都是必需的領域。然而,在使用mobiscroll日期選擇器填寫日期後,該字段仍然按要求列出,即使它不是空的。

+0

您的代碼_por favor_;) – Omar 2013-03-25 15:26:43

+0

您只需關閉'onkeyup'。 'onfocusout'事件是一個不同的選項,默認情況下,除非你關閉它。你將不得不顯示所有相關的代碼,包括datepicker。 – Sparky 2013-03-25 15:29:24

回答

4

「我有我的驗證設置爲:

onkeyup: false

我相信這將觸發對焦點/模糊(標籤)事件中的確認,而不是」。

您只需關閉onkeyup事件。 onfocusout事件是一個完全不同的選項,默認情況下爲「打開」,除非您將其關閉。

由於您沒有提供任何代碼,因此我無法給您更詳細的解決方案。

但是,您所描述的問題可能可以通過使用內置到日期選擇器(哪一個?)中的回調函數來解決。就像「在變化」或「在選擇」,如果它有這些可用。

然後在回調函數中,您需要調用the jQuery Validate plugin's .element() method,它以編程方式觸發對該特定元素的驗證測試。

$('#myform').validate().element('#myelement'); 

如果沒有一個回調函數,你可以嘗試這樣的事情,它利用元素的jQuery change event

$('#myelement').on('change', function() { 
    $('#myform').validate().element('#myelement'); 
}); 

編輯

關於你的jsfiddle代碼。

1)不要在validate內的選項後放置分號。這打破了插件。

2)不要使用submit處理程序來檢查表單是否有效。內置submitHandler回調已經這樣做。

3)你</form>標籤被拼寫</for>

OP與編輯小提琴:http://jsfiddle.net/3v2ZV/4/

+0

我修復了其中的一些內容,但是今天並沒有在jsfiddle中保存(也就是說我改變了窗體的內容並且更新了內容,但是沒有骰子?) – redconservatory 2013-03-25 16:00:05

+2

@redconservatory,它在這裏工作:http://jsfiddle.net/3v2ZV/ 4/ – Sparky 2013-03-25 16:01:14

+0

明白了......謝謝! – redconservatory 2013-03-25 16:17:09