когда я нажал кнопку добавить строку, добавлена строка, но jquery datepicker не работает

#html #css

#HTML #css

Вопрос:

когда я добавил datepicker к своим добавленным строкам. но средство выбора даты не работает. но это работает только сначала. когда я удаляю первый tr datepicker, оставшиеся добавленные строки, средство выбора даты работает

пожалуйста, смотрите Код ниже.

 $(function() {
    $( ".datepicker" ).datepicker({

         defaultDate: " 1w",
         changeMonth: true,
         maxDate: new Date(), 
         dateFormat: 'yy-mm-dd',
         numberOfMonths: 1,

    });  });

function addRow(tableID) {
        var table       = document.getElementById(tableID);
        var rowCount    = table.rows.length;
        var row         = table.insertRow(rowCount);
        var colCount    = table.rows[0].cells.length;

        for(var i=0; i<colCount; i  ) {

            var newcell = row.insertCell(i);
            newcell.innerHTML = table.rows[0].cells[i].innerHTML;
            switch(newcell.childNodes[0].type) {
                case "text":
                        newcell.childNodes[0].value = "";
                        break;
                case "checkbox":
                        newcell.childNodes[0].checked = false;
                        break;
                case "select-one":
                        newcell.childNodes[0].selectedIndex = 0;
                        break;
            }
        }
        var $row = $(row);
        $row.find('input.datepicker').datepicker({
             maxDate: new Date(), 
             dateFormat: 'yy-mm-dd',
        });

    }
  

html-код для вышеуказанного js

`

 <input type="button" class="btn btn-default" value="Add Row" onClick="addRow('add_row')"/>
 <table class="table table-bordered" id="adddeleterow">

                                <tbody id="add_row">
                                <tr>
                                <td><input class="form-control datepicker" type="text" name="date[]" id="date" placeholder="Date"/>
                                    </td>
                                    <td>
                                        <input class="form-control" type="text" name="hours[]" id="hours" placeholder="hours(hh:mm)"/>
                                    </td>
                                    <td><input type="button" class="btn btn-default" id="delPOIbutton" value="Delete" onClick="delete_check('add_row',this)" /></td>
                                    </tr>
                                </tbody>
                            </table>
  

`

Комментарии:

1. Вы загрузили jqueryui?

2. я загрузил jquery ui.js и jquery ui.css, но не работает

3. можете ли вы также включить сюда код css.. Я получил ошибки onclick при попытке использовать внешний источник.

Ответ №1:

Проблема была во второй строке.

Что у вас есть:

 $( ".datepicker" ).datepicker({
  

Это должно быть так.

 $(function() {
$(".datepicker").datepicker()({

  defaultDate: " 1w",
  changeMonth: true,
  maxDate: new Date(),
  dateFormat: 'yy-mm-dd',
  numberOfMonths: 1,

}); });
  

Кроме того, вам нужно привязать событие щелчка к addRow и переместить новую строку вверх в dom.

 $(".datepick").datepicker();
var newRowNum = 0;

// bind a click event to the "Add" link
$('#addnew').click(function() {

$(".datepick").datepicker("destroy");
  

Вы можете просмотреть больше здесь.
http://jsfiddle.net/norcaljohnny/hq2r9Lbq /

Комментарии:

1. спасибо norcal, но этот код не подходит для моего кода. я пробовал ваш способ, но не работает.

2. мои JS и CSS являются <script src=»<?php echo base_url();?>assets/js/jquery-ui.js»></script> <link rel=»stylesheet» href=»<?php echo base_url();?>assets/css/jquery-ui.css»> версия jQuery 1.11