2012-12-31 74 views
2

可能重複:
Remove Datepicker Function dynamically禁用日期選擇器沒有禁用輸入字段

在我的web應用程序,我使用的日期選擇器。我使用相同的頁面來創建和編輯細節。在編輯頁面時,日期不應該是可編輯的。我通過使用下面的代碼禁用datepicker。

$("#datepicker").datepicker("disable"); 

但上面的代碼也禁止輸入字段也。(如果輸入字段在編輯模式下被禁用的數據不被髮布到PHP)。我想禁用datepicker而不禁用輸入字段,我想顯示「ui-datepicker-trigger」圖標。誰能幫我嗎。 以下是鏈接到的jsfiddle

http://jsfiddle.net/Xppj6/1/

回答

3

嘗試,

$("#datepicker").datepicker("destroy"); 

在回答您的評論: 如果你想保留圖標只是做手工,從DOM樹即拷貝圖標,銷燬datepicker(這將從DOM中刪除圖標),然後將其重新插入到DOM中。可能是最好的不是高性能,但除非你每秒:)

執行這個數千次沒有人會注意到我的基本想法是做這樣的事情:

$img = $('#datepicker').parent().find('img'); //fetch datepicker icon from DOM 
    $("#datepicker").datepicker("destroy"); //destroy datepicker 
    $('#datepicker').parent().append($img); //reappend icon into its original place 

在JS提琴:http://jsfiddle.net/Xppj6/7/ 和撥弄兩「禁用」和「啓用」按鈕:http://jsfiddle.net/Xppj6/14/

注:你將不得不完全重新創建日期選擇,如果你需要撤消此操作。您也將創造新的日期選擇器之前破壞手動附加圖標(如新的日期選擇器將createn EW圖標)

Refrence: http://api.jqueryui.com/datepicker/#method-destroy

+0

使用銷燬它刪除「ui-datepicker-trigger」圖標,但我想顯示「ui-datepicker-trigger」圖標 –

+0

編輯我的答案,以簡單的解決方案做你想做的。 –

+0

它的工作正常。謝謝。 –

1

我不知道如何禁用日期選擇器沒有禁用輸入字段,但您可以做的一件事是創建一個隱藏變量,您可以在寫入數據之前複製輸入字段的值,然後在服務器上檢索它。