jQuery datepicker附加不起作用

时间:2011-10-24 11:15:30

标签: jquery datepicker

我在尝试显示多个字段时遇到此问题,并且onclick on the datepicker应该运行,如果我把代码放在javascript之外就可以正常运行了,所以一定有什么问题我的$ .each循环它或附加,但不知怎的,我不能让它工作。

$(function() {

        $(".datepicker").datepicker({
            changeMonth: true,
            changeYear: true,
            dateFormat: "yy-mm-dd"
        }); 

var val = [];

                $(':checkbox:checked').each(function(i){

                 val[i] = $(this).attr("id");

                });


                if(val == "")
                {

                alert('no selection');

                }
                else
                {

                    $.post("add_stuff", { "post" : val, "csrf" : cct },
                        function(data)
                        {
                            $("#content").empty();

                            json = eval('('+data+')');

                            $.each(json.datecheck, function() {
                                 $("#content").append("<h2>" + this.pName + " - " + this.pDesc + "</h2>");
                                 $("#content").append("<p>Datum: <input type='text' class='datepicker'></p>");
                            });


                        });


                }
            });

帖子 - &gt;在控制器中运行insert查询,并返回一些循环的json数据。 对于返回的每一行,我想要一个输入字段,一个工作的:) 真的很感激一些帮助,现在用这种方式挣扎太久了:/

3 个答案:

答案 0 :(得分:4)

对jquery 1.9 +

使用.on()函数
$(document).on('click', '.datepicker', function(){
   $(this).timePicker({
      changeMonth: true,
      changeYear: true,
      dateFormat: "yy-mm-dd"
   }).focus();
   $(this).removeClass('datepicker'); 
});

答案 1 :(得分:1)

当前绑定不起作用,因为该元素不存在 由于输入字段的添加是动态的,因此您需要使用JQuery live

示例 -

$('.datepicker').live('click', function(){
    $(this).timePicker({
      changeMonth: true,
      changeYear: true,
      dateFormat: "yy-mm-dd"
    }).focus();
    $(this).removeClass('datepicker');
});

答案 2 :(得分:0)

$(document).ready(function() {
    $(".addSpan").click(function() {
        var i = $("#dateTab input") .length + 1;
        $("#dateTab").append($("<label>Date</label><input class='getDate id_"+ i +"' type='text' name='name[]' />"));
    });

    $( ".getDate" ).datepicker();
});