Задать вопрос
@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" пробовал прописывать его явно, все равно не помогает, и в этом ли причина проблемы?

Может кто знает как решить эту лабуду, пробовал и виджет от катрика, тоже самое, первый срабатывает остальные нет (
  • Вопрос задан
  • 1473 просмотра
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Onskills
    PHP: базовый курс
    1 месяц
    Далее
  • teamcoding
    TC200PY Разработка PHP веб-приложений на Yii2. Шаблон приложения advanced
    3 месяца
    Далее
  • FructCode
    Yii2 Фреймворк
    2 месяца
    Далее
Решения вопроса 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) запускайте на каждый новый экземпляр дэйтпикер.
Ответ написан
Ваш ответ на вопрос

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

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