【问题标题】:jQuery UI DatePicker questionjQuery UI DatePicker 问题
【发布时间】:2009-07-10 11:44:43
【问题描述】:

我有 2 个输入字段,我将它与这样的 DatePicker 一起使用

$("#depart, #return").datepicker({
     showOn: 'both',
     buttonImage: 'images/icon_calendar.gif',
     buttonImageOnly: true,
     numberOfMonths:2,
     dateFormat: 'dd-mm-yy'
});

有时我想删除返回字段,我正在使用 .remove() 方法。然后使用 .after 方法,我再次将此字段添加到表单中。但是日期选择器功能不可用。

有道理,但我不知道如何为新创建的字段重新分配日期选择器?

【问题讨论】:

  • 你为什么不把“返回”的东西隐藏一段时间?

标签: jquery jquery-ui datepicker


【解决方案1】:

再次添加字段后,需要对该字段调用.datepicker

Working Demo to demonstrate

关于演示的注意事项:由于添加按钮将添加一个带有 id="return" 的文本输入,添加多个按钮会弄乱日期选择器所附加到的输入。

$("[where you're inserting]").after("<input id='return' type='text' />");

$('#return').datepicker({
     showOn: 'both',
     buttonImage: 'images/icon_calendar.gif',
     buttonImageOnly: true,
     numberOfMonths:2,
     dateFormat: 'dd-mm-yy'
    });

我建议只输入 hiding 输入,然后在需要时再次输入 showing,而不是删除然后重新插入 DOM。

【讨论】:

    【解决方案2】:

    我相信您必须在重新添加后立即重新分配。

    类似这样的:

    $("#return").remove();
    
    $("something").after(myReturnfield);
    
    $("#return").datepicker(myDatepickerSettings);
    

    【讨论】:

    • 这就是我的想法,但我不确定当我删除它时,初始的 datepicker 对象是否被破坏或仍然处于活动状态。
    • 不,我认为 datepicker 的工作方式只是将事件侦听器添加到选定对象。一旦对象被销毁,监听器将不会为这个特定的对象工作,但不会影响另一个对象。
    猜你喜欢
    • 2011-12-16
    • 1970-01-01
    • 1970-01-01
    • 2013-06-07
    • 1970-01-01
    • 1970-01-01
    • 2013-01-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多