【问题标题】:JQuery datePicker not working for dynamically created input elementJQuery datePicker 不适用于动态创建的输入元素
【发布时间】:2012-11-01 10:09:23
【问题描述】:

我正在尝试将 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 来了。但是日期没有更新到该输入字段。同样,当我发出警报以显示选定的日期时,我注意到只有日期在改变.. 年份和月份没有改变,即使我改变它

【问题讨论】:

    标签: ajax jquery jquery-ui-datepicker


    【解决方案1】:

    这可能是因为您正在动态添加具有相同 ID 的日期选择器,我在使用动态创建的日期选择器时遇到了同样的问题。如果无论如何你可以取出 Id attr 并使用 Name attr 它应该可以工作。

    所以你应该有以下

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

    【讨论】:

    • 我又得到了另一个 pblm .. 当我使用 $('[name="startDateId"]').val(); 时该值没有得到;
    • 好吧,如果您在页面上有几个不同的日期选择器,那么您的代码 $('[name="startDateId"]').val(); 只会获得第一个值。您需要通过执行$('[name="startDateId"]',$(".pop-info")).val(); 之类的操作为获取日期的位置添加一些上下文,但没有完整标记,我只是在猜测。
    • 不,实际上这是我的错误。我忘了发表评论
    【解决方案2】:

    尝试像这样在 .datepicker 上使用刷新方法:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-03-27
      • 1970-01-01
      • 2015-12-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多