禁用datepicker而不禁用输入字段

时间:2012-12-31 11:04:53

标签: php jquery jquery-ui jquery-ui-datepicker

  

可能重复:
  Remove Datepicker Function dynamically

在我的网络应用程序中,我正在使用datepicker。我使用相同的页面来创建和编辑细节。编辑页面时,日期不应该是可编辑的。我正在使用以下代码禁用日期选择器。

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

但是上面的代码也会禁用输入字段。(如果在编辑模式下禁用输入字段,则数据不会发布到PHP)。我想禁用datepicker而不禁用输入字段,我想显示“ui-datepicker-trigger”图标。谁能帮我吗。 以下是JSFIDDLE

的链接

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

2 个答案:

答案 0 :(得分: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/

注意:如果您需要撤消此操作,则必须完全重新创建datepicker。在创建新的datepicker之前,您还必须销毁手动附加的图标(因为新的datepicker将创建新的图标)

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

答案 1 :(得分:1)

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