Задать вопрос
@akula22

Несколько datePicker на одной странице в динамической форме не работает, почему?

На странице динамическая форма где создаются несколько виджетов datePicker
<?= $form->field($modelAddress,  "[{$i}]date")->widget(\yii\jui\DatePicker::className()) ?>

первый виджет работает, остальные нет, выбрать дату нельзя.

в исходнике страницы получается вот это
<input type="text" id="ordertemplate-0-date" name="OrderTemplate[0][date]" class="hasDatepicker" aria-invalid="true">
......
<input type="text" id="ordertemplate-1-date" name="OrderTemplate[1][date]" aria-invalid="true">

почему-то исчезает class="hasDatepicker" пробовал прописывать его явно, все равно не помогает, и в этом ли причина проблемы?

Может кто знает как решить эту лабуду, пробовал и виджет от катрика, тоже самое, первый срабатывает остальные нет (
  • Вопрос задан
  • 1461 просмотр
Подписаться 1 Простой Комментировать
Решения вопроса 1
slo_nik
@slo_nik Куратор тега Yii
Добрый день.
Чтобы работали все добавляемые DatePicker Вам надо сначала принудительно удалить dataPicker, а потом заново, принудительно, инициализировать все видимые виджеты.
Выглядит это приблизительно так:
echo $form->field($model, '[0]date')->widget(DatePicker::className(),[
                'options' => [
                    'data' => [
                        'picker' => 'datepicker'
                    ]
                ]
         ])

а ниже, или в отдельном файле, будет такой js код:
$('#plus').on('click', function(){
       /* какой-то Ваш код */
       $('#testForm')..find('.hasDatepicker').datepicker('destroy');
       $('#testForm').find('input[data-picker=datepicker]').datepicker();
       /* какой-то Ваш код */
    })

Пришлось добавить параметр "data-picker", так как при "destroy" удаляется класс "hasDatepicker"
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
kawabanga
@kawabanga Куратор тега Yii
1) используйте разные идентификаторы (у вас они есть)
2) запускайте на каждый новый экземпляр дэйтпикер.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы