JQuery DatePicker добавлен не работает - PullRequest
0 голосов
/ 24 октября 2011

У меня есть эта проблема, когда я пытаюсь отобразить несколько полей, и должен запускаться onclick на этих указателях даты, если я помещаю код вне 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>");
                            });


                        });


                }
            });

Пост -> выполняет запрос вставки в контроллере и возвращает некоторые данные json, которые зациклены.И для каждой возвращаемой строки я хочу поле ввода, работающее :) Очень хотелось бы получить помощь, слишком долго боролась с этим: /

Ответы [ 2 ]

4 голосов
/ 02 октября 2017

Используйте функцию .on () для jquery 1.9 +

$(document).on('click', '.datepicker', function(){
   $(this).timePicker({
      changeMonth: true,
      changeYear: true,
      dateFormat: "yy-mm-dd"
   }).focus();
   $(this).removeClass('datepicker'); 
});
1 голос
/ 24 октября 2011

Текущая привязка не будет работать, так как элемент не существует.
Поскольку добавление поля ввода является динамическим, вам необходимо использовать JQuery live

Пример -

$('.datepicker').live('click', function(){
    $(this).timePicker({
      changeMonth: true,
      changeYear: true,
      dateFormat: "yy-mm-dd"
    }).focus();
    $(this).removeClass('datepicker');
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...