1

确实发现了一个奇怪的错误。

Datepicker 按预期正常工作,直到我通过 AJAX 加载一个对象,然后将 datepicker 附加到它,如下所示:

    $(".object").datepicker({
    showOn: 'both',
    buttonImage: '/images/icons/silk/calendar.png',
    dateFormat: "mm/dd/yy",
    changeMonth: true,
    changeYear: true,
    buttonImageOnly: true,
    yearRange: "2010:2030"
    onSelect: function(dateText, inst) {
      console.log('this was tapped.');
      console.log(dateText);
      console.log(inst);
    }
    })

如果我单击输入或图标,则会弹出日期选择器。但是如果我选择任何东西,日期选择器就会关闭,并且我输入的日期不会改变。

更新

甚至更陌生。我更新了console.log上面的调用,它们都正常返回。然而,我输入的日期并没有改变。

更新

我认为这里可能发生的情况是页面上有几个具有相同唯一 ID 的常见 div,因为它是一种可自我克隆的形式。

更新

这是在 JSFiddle 中重新创建的错误:http: //jsfiddle.net/vMhrg/

4

2 回答 2

7

您的 ID 重复似乎是个问题。ID不能使用超过一次页面,考虑添加一个计数器(就像我在固定代码中所做的那样)或者如果可以的话完全删除它。

http://jsfiddle.net/vMhrg/1/

代码(其他都一样):

<input type="text" value="05/08/2012" size="10" rel="Recurring End Date" name="task[scheduled_at]" id="task_scheduled_at_1" class="date-single-view">

<br />
<br />
<div class="item">
<input type="text" value="05/08/2012" size="10" rel="Recurring End Date" name="task[scheduled_at]" id="task_scheduled_at_2" class="date-single-view">
</div>

​</p>

于 2012-05-16T15:18:41.267 回答
1

您在 .item 和 .date-single-view 上都调用 datepicker(),它们是 dom 中的嵌套元素(根据下面的小提琴),这可能不是一个好主意 - 在 div 上调用 datepicker一个输入字段,但不能两者兼而有之。

<div class="item">
   <input type="text" value="05/08/2012" size="10" rel="Recurring End Date" name="task[scheduled_at]" id="task_scheduled_at" class="date-single-view">
...
于 2012-05-16T15:18:14.457 回答