我有一個簡單的日期選擇器我用於幾個日期輸入。這裏的代碼:Datepicker:按Esc保留佔位符文本作爲值
$('input.isDate').datepicker({
numberOfMonths: 1,
onSelect: function() {
$(this).removeClass('placeholder'); //default is to keep placeholder style format
},
onClose: function() {
$(this).focus(); //otherwise focus goes to neverneverland
}
});
Datepicker顯示焦點。兩個.isDate輸入的佔位符值爲「Date」。
如果用戶在日期選擇器中按下退出鍵,則會出現問題。這樣做的預期行爲是關閉日期選擇器並恢復輸入點框中的任何文本。在我的情況下,輸入框的值將成爲佔位符值。在這一點離開框,在框中留下「Date」這個詞作爲一個硬性值,而不是一個佔位符提示符,所以它會跳過我的一些字段級日期驗證。
我已經能夠通過在用戶離開盒子時消隱文本值來解決這個問題,但是當用戶離開日期選擇器手動輸入日期時,用戶不應該刪除該文本。我已經做了很多嘗試,使用事件來擺脫這一點,並沒有一個工作:我試過focusin,在按鍵中捕捉esc,以及datepicker本身的create,beforeDisplay,onSelect和onClose事件。在所有這些情況下,箱子的價值仍然是「」。顯然,日期選擇器在完成所有業務後設置了框的值,我認爲在此設計中不考慮佔位符。可能是一個錯誤?我們使用Whitelabel皮膚,所以它們可能以某種方式干擾日期選擇器?無論如何,我非常感謝解決方法或解釋。我還沒能找到很多。
TIA
你是如何提供placholder價值的?你真的使用'placeholder'屬性嗎?也許發佈你的HTML會很有幫助 - 更好的是,在jsFiddle上放置一個測試用例。 – JMM 2012-01-27 21:27:04
是的,使用佔位符屬性。 HTML非常簡單:'' – BobRodes 2012-01-27 23:07:51