2013-04-04 69 views
2

我正在使用jquery ui datepicker控件在文本框中,同時我正在使用onblur事件進行驗證。現在的問題是,當點擊文本框和日曆出現時,當您選擇日期時,在文本框上執行驗證。我盡力處理它,但它仍然出現一秒鐘。如何處理datepicker控件?

這裏是代碼

$(document).ready(function() { 

    $("#date").datepicker({ 
     onSelect: function() { 
      $("#span1").css("display", "none") 
     } 
    }); 
}); 

function check() { 
    if ($("#date").val() == "") $("#span1").css("display", "inline-block"); 
} 

爲了更好地理解這裏是jsFiddle link

編輯:最後決議:接受最接近的答案第一次提出。

$("#date").datepicker({ 
    onClose: function() { 
     check(); 
    } 
}); 

回答

1

而不是模糊的輸入框,你也可以打電話檢查datepicker關閉時。

$("#date").datepicker({ 
    onSelect: function() { 
     $("#span1").css("display", "none") 
    }, 
    onClose: function() { 
     check(); 
    } 
}); 
+0

你請從輸入框的onblur的? 對我來說很好用http://jsfiddle.net/4Vp9D/24/ chrome和ie9 – gary 2013-04-04 21:44:44

+0

@ user1390378 - 人們會查看低級別信譽的用戶所做的修改。兩個人拒絕了這個編輯 - 我會基於你的OP接受這個編輯 - 但是你應該怎麼做,如果這能解決你的問題,就是爲這個答案添加一個評論,接受這個答案並且將編輯後的代碼放入並編輯評論在你的問題。 – 2013-04-04 22:16:06

+0

@Mark Schultheiss:謝謝你的解釋。你能告訴我爲什麼這兩個人拒絕了嗎?由於我的編輯只是爲了改善答案。 – user1390378 2013-04-04 22:21:33

0

使用setTimeout

$(document).ready(function() { 
    $("#date").datepicker({ 
     onSelect: function() { 
      $("#span1").css("display", "none") 
     } 
    }); 
}); 


function check() { 
    setTimeout(function(){ 
     if ($("#date").val() == "") 
      $("#span1").css("display", "inline-block") 
      }, 100); 
} 

DEMO: http://jsfiddle.net/dirtyd77/4Vp9D/26/

+0

對不起親愛的同樣的問題了。 – user1390378 2013-04-04 21:56:45