2016-03-16 77 views
0

我使用Jon Thornton的jQuery timepicker(http://jonthornton.github.io/jquery-timepicker/)作爲表單中的時間字段,但最近我決定需要將字段設置爲只讀,以便用戶無法輸入除選取器中的時間以外的任何文本。但是,當我將readonly屬性添加到時間輸入字段時,timepicker不再起作用 - 當我單擊該字段時,它不會出現。jquery timepicker - 只讀時不工作

我有點困惑,因爲我也在另一個設置爲只讀的字段上使用jQuery日曆,並且工作得很好。誰能幫我嗎?

<head> 
    <!--DATEPICKER--> 
    <link rel="stylesheet" href="http://code.jquery.com/ui/1.10.4/themes/smoothness/jquery-ui.css"> 
    <script src="http://code.jquery.com/jquery-1.10.2.js"></script> 
    <script src="http://code.jquery.com/ui/1.10.4/jquery-ui.js"></script> 

    <!--TIMEPICKER--> 
    <script type="text/javascript" src="jquery.timepicker.js"></script> 
    <link rel="stylesheet" type="text/css" href="jquery.timepicker.css" /> 

    <script> 
     $(function(){ 
      $("#date").datepicker({maxDate: "+0D" , dateFormat: "yy-mm-dd"}); 
      $("#time").timepicker(); 
     }); 
    </script> 
</head> 

... 

<input type="text" name="date" id="date" readonly="true"> 
<input type="text" name="time" id="time" readonly="true"> 

非常感謝。

+0

試着動態地添加readonly屬性:$(「#time」).timepicker()。attr('readonly','readonly') – oMiKeY

+0

好的建議,但這沒有幫助。 – skwidbreth

+2

Github頁面將此問題標記爲已添加'disableTextInput'選項,因此可能試試:$(「#time」)。timepicker({'disableTextInput':true}); (也可以從時間選擇器的HTML中刪除readonly =「true」) – oMiKeY

回答

1

感謝@oMiKeY幫助我解決這個問題。主要的問題是我使用的是一個過時的timepicker版本。在我切換到更新的版本後,我可以將disableTextInput選項設置爲true,這就實現了。

看來,disableTextInput已被包含在舊版本中,但隨後被刪除,以支持選擇樣式列表,但後來恢復。但是,我需要輸入類型保留文本,因爲用戶可以從列表中選擇一個時間,或者從按鈕單擊中獲取當前時間。

編輯 - 我注意到,做這個更改會導致timepicker在iPhone 5s上使用Chrome時失敗。它在使用Safari時確實有效,但似乎適用於Android上的Chrome。