2012-12-31 148 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

我不知道如何禁用日期选择器没有禁用输入字段,但您可以做的一件事是创建一个隐藏变量,您可以在写入数据之前复制输入字段的值,然后在服务器上检索它。