JQuery-UI DatePicker проблема - PullRequest
       21

JQuery-UI DatePicker проблема

1 голос
/ 16 августа 2011

Эй, ребята, у меня есть два div-а с id = "form1", который встроен, а другой с id = "form2", который получает свое содержимое через ajax (где тег div упоминается на той же странице).

<div id="form1">
 .
 .form content
 .
 .
</div>
<div id="form2"> //gets content dynamically

Теперь я использовал следующий код выбора даты -

    $(function() {
    $( "#datepicker,#datepicker1" ).datepicker({ dateFormat: 'yy-mm-dd' });
});

Теперь я применил идентификатор datepicker к полю в form1, и он работает отлично. Проблема во втором виде. Вторая форма генерируется циклом, и я использовал следующую логику, чтобы применить к ней идентификатор datepicker1-

<? foreach ($list as $key => $value): ?>
    <? $dt='';
    if($key=='date_of_purchase'){

        $dt="datepicker1";
    }?>
        <tr><td><?= $key ?> :</td><td><input id="<?=$dt;?>" type="text" name='<?= $key ?>' size="25" value='<?php echo $value; ?>'/></td></tr>
    <? endforeach; ?>

Теперь id datepicker1 отлично применяется к обязательному полю, но всплывающее окно jquery datepicker не отображается должным образом.

Какое решение ??

Ответы [ 3 ]

1 голос
/ 16 августа 2011
$("#datepicker1").live("click",function() {
    $(this).datepicker({showOn:'focus',dateFormat: 'yy-mm-dd'}).focus();
 });
1 голос
/ 16 августа 2011

id = "form2", которая получает свое содержимое через ajax

Ну, вот твоя проблема:)

Код javascript, который добавляет функциональность DatePicker, вероятно, выполняется до завершения события ajax. Попробуйте загрузить средство выбора даты для второй формы после загрузки содержимого.

0 голосов
/ 16 августа 2011

Функция jquery запускается только один раз при первой загрузке dom. Он не обновляется, когда вы загружаете контент AJAX. Лучший способ исправить это - использовать функцию делегата jquery, прикрепленную к родительскому элементу. Просто введите входные данные, которые вы хотите, чтобы DatePicker был классом DatePicker (или каким-либо другим способом их выбора). Как то так.

$('#parentID').delegate('.datepicker', 'focus', function() {
    $(this).datepicker({ dateFormat: 'yy-mm-dd' });
});

Я предполагаю, что parentID - это идентификатор некоторого родительского элемента обеих форм.

...