JQuery datePicker不适用于动态创建的输入元素

时间:2012-11-01 10:09:23

标签: ajax jquery jquery-ui-datepicker

我正在尝试将jquery datepicker集成到我使用脚本动态创建的输入字段中。

我的剧本就像......

function getDate(id)
{
       $('.pop-up-link').show();
        $.ajax({
        url :   'gettartDate.jav',
        data    :   'Id='+id,
        success :   function(dateStr)
                        {
                             var htmlStr = 'Start Date : <input type="text" class="datepicker" id="startDateId" value="'+dateStr.StartDate+'"/>';
                             $(".pop-info").html(htmlString);
                             $('.datepicker').datepicker({ dateFormat: 'yy-mm-dd', changeMonth: true, changeYear: true});
                        }
}

当我需要在数据库中编辑日期并向数据库添加新条目时,我正在调用此脚本。当我需要添加新条目时,我将id设置为0并返回一个空白字符串..

现在我的问题。 datepicker完美适用于编辑功能..但是当我添加一个新条目时,datepicker ui来了..但是日期没有更新到该输入字段。再次,当我发出警告显示所选日期时,我注意到只有日期正在改变..年份和月份没有变化,即使我改变它

2 个答案:

答案 0 :(得分:1)

尝试在.datepicker上使用刷新方法,如下所示:

$( ".datepicker" ).datepicker( "refresh" );

答案 1 :(得分:1)

可能是因为你动态添加具有相同ID的datepicker,我在动态创建的datepickers时遇到了同样的问题。无论如何你可以拿出Id attr并使用Name attr它应该可以工作。

所以你应该有以下

var htmlStr = 'Start Date : <input type="text" class="datepicker" name="startDateId" value="'+dateStr.StartDate+'"/>';