Добавление jQuery Datepicker в динамически добавляемый <input> - PullRequest
3 голосов
/ 16 апреля 2010

У меня есть метод, который создает форму в моем контроллере:

...
sbReturn.Append(String.Format("<p id='planSetupAddNewEffectiveDate'>"));
sbReturn.Append(String.Format("<label for='txtPlanSetupAddNewEffectiveDate'>Effective Date </label>"));
sbReturn.Append(String.Format("<input type='text' id='txtPlanSetupAddNewEffectiveDate' class='plansetupdate' />"));
sbReturn.Append(String.Format("</p>"));
...

Есть ли способ прикрепить указатель даты к этому текстовому полю?

Я попробовал стандарт

* +1007 *

и

$("#txtPlanSetupAddNewEffectiveDate").datepicker();

но ни один из них фактически не генерирует средство выбора даты. Я знаю, что при перехвате событий из элементов управления, добавленных двумя словами (например, кнопок) .live используется (например, xxx.live ('click', function () ...), есть ли что-то подобное для этого случая?

Ответы [ 2 ]

5 голосов
/ 16 апреля 2010

Вы можете использовать плагин .liveQuery() для этого , .live() не полностью заменить его, ваш случай является ярким примером, вы должны сделать это, чтобы получить результат, который вы после:

$(".plansetupdate").liveQuery(function() {
  $(this).datepicker();
});

По причинам: причина, по которой он не работает в настоящее время, заключается в том, что когда вы выполняете $(".plansetupdate").datepicker();, он делает следующее:

  • Найти все элементы с классом planetsupdate
  • Сделать на них указатели даты

Но ... вашего элемента не было, чтобы найти, когда он работал, он был добавлен позже. .liveQuery() продолжает смотреть. В качестве альтернативы, если вы загружаете этот контент через $.ajax(), вы можете настроить его в своем успехе или полностью обработать, например так:

$.ajax({
  //Stuff
  success: function(data) {
     $(".plansetupdate", data).datepicker();
  }
});

Это будет смотреть в ваших возвращенных данных для .planetsupdate элементов, чтобы добавить новые датчики.

0 голосов
/ 16 апреля 2010

Должно работать!

Получаете ли вы это по ajax или во время обычного запроса. Вы уверены, что ваш js-код выполнен правильно (после того, как ввод создан в doom).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...