JQuery DatePicker - PullRequest
       6

JQuery DatePicker

1 голос
/ 22 февраля 2010

Я создаю одно веб-приложение. здесь я столкнулся с одной проблемой с jQuery.

На самом деле в моей концепции, когда пользователь нажимает кнопку «Плюс», будет добавлена ​​одна новая строка. Когда пользователь нажимает кнопку «минус», эта строка будет удалена. В строке есть выпадающие списки и текстовые поля. В зависимости от выбора пользователя будет создан. Это может быть текстовое поле или раскрывающийся список. Если это текстовое поле, мне нужно создать DatePicker. Когда пользователь нажимает на это текстовое поле, это текстовое поле должно создаваться динамически.

Может кто-нибудь помочь?

Ответы [ 5 ]

0 голосов
/ 26 ноября 2010

У меня есть эксклюзивная идея- где вы вставляете эти динамические элементы; просто запустите там функцию datePicker. Вот решение. Просто взгляните на краткое .

например-

  • У меня есть 2 текстовых поля для выбора даты (class = "date") в самый первый раз; в этом div

<div id="additional_charges"><br> Startdate : <input type="text" name="startdate_1" class="date" /><br/><br> Enddate : <input type="text" name="enddate_1" class="date" /><br> </div>

  • Теперь При появлении какой-либо кнопки новое содержимое (еще несколько текстовых полей для ввода даты ) будет добавлено в этот div. Теперь просто запустите здесь метод выбора даты (вы знаете, почему). function add_more_charge()<br> {<br> var str = '<br/>Startdate : <input type="text" name="startdate_2" class="date" /><br/>Enddate : <input type="text" name="enddate_2" class="date" />';<br> $("#additional_charges").append(str);<br> $( ".date" ).datepicker(); // run the date-picker here also<br> }
  • Теперь все готово, вам достаточно этого метода:
    $(function() {<br> $( ".date" ).datepicker();<br> });

Это мой первый пост на этом полезном сайте. Не знаю раньше, насколько это сложно - опубликовать что-то. Извините за этот просмотр списка. Хотел сделать что-то другое. Спасибо.

0 голосов
/ 21 сентября 2010

Я столкнулся с подобной проблемой и смог найти обходной путь.

Я заметил, что когда я сделал clone () на моем tr, был клонирован исходный ввод DatePicker (input.date) вместе с классом hasDatePicker. Удаление этого класса и повторный запуск .datepicker () на tr решили его.

Пример кода:

tr.find('input.date').removeClass('hasDatepicker').datepicker();
0 голосов
/ 22 февраля 2010

Это зависит от используемой вами версии jquery:

Ключевым моментом является то, как вы сообщаете jquery прикрепить элемент, который еще не существует.

В версии 1.3 и выше вы используете .live в имени div-элемента datepicker, чтобы он знал, как создать datepicker.

Если вы используете более старую версию (1.2 и ниже), вы создаете объект jquery, который является вашим текстом, а затем присоединяете слушателя к объекту jquery. Killerphps ajax с jquery video "Dom Manipulation" имеет большое пошаговое руководство о том, как это сделать.

0 голосов
/ 22 февраля 2010

предположим, что ваш текстовый элемент выглядит так:

<input type="text" ..... />

затем добавьте класс css (если он уже не содержит класс, и его не следует использовать с элементами другого типа только с текстовыми полями для указателя даты), например, так:

<input type="text" class="dtp" .... />

В вашем коде jquery, который добавляет новую строку:

var lastRow=$("table tr:last");//get newly added row some way.

$(lastRow).find("td input:text").datepicker();
0 голосов
/ 22 февраля 2010

После добавления строки вам необходимо прикрепить указатель даты к вашему текстовому полю. Примерно так должно быть запущено после создания элемента:

$('.date_input').datepicker({
            changeMonth: true,
            changeYear: true
        });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...