2012-09-24 38 views
1

我有一個問題,我的jquery datepicker在daptepicker字段有 驗證錯誤時自動打開。 這裏的代碼驗證後jquery datepicker開放問題

a("#da-ex-validate1").validate(
{ 

rules:{"jourferie.nombrejours":{required:true,digits:true,max:40}, 
     "jourferie.date":{required:true,date:true}, 
     "jourferie.occasion":{required:true} 
     }, 
invalidHandler:function(e,c){var f=c.numberOfInvalids();if(f){var d=f==1?"Vous avez manqué 1 champ. Il a été mis en évidence":"Vous avez manqué "+f+" champs. Ils ont été mis en évidence";a("#da-ex-val1-error").html(d).show();}else{a("#da-ex-val1-error").hide();}} 

}); 

a("#da-ex-datepicker").datepicker({showOtherMonths:true,onSelect: function() { a(this).valid(); }}); 

,所以我想要的是禁用此行爲。 謝謝。

+1

我想它是因爲當驗證發生時,相關的文本框變得焦點和datepicker得到顯示。 –

+0

我同意你的觀點,那麼無論如何要在驗證時規避這種行爲? – user1655410

回答

1

您可以在「invalidHandler」處理程序回調中隱藏日期選擇器。

例子:

a("#da-ex-validate1").validate(
{ 
    //exisiting rules 
    invalidHandler:function(e,c){ 
     // exisiting stuff 
     a("#da-ex-datepicker").datepicker("hide"); 
    } 
}); 

或者你可以設置 「focusInvalid」 選項設置爲false,以防止聚焦無效元素。

a("#da-ex-validate1").validate(
{ 
    focusInvalid : false, 
    //exisiting stuff 
}); 

希望這會有所幫助!

+0

它在「invalidHandler」中並不適用於我,但是當我使用disbale而不是隱藏它的時候,但我的日期選擇器在此之後並沒有顯示出來。 – user1655410

+0

@ user1655410,我已經更新了我的答案再看看。 –

+0

非常感謝你現在的作品。 – user1655410