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

Может кто знает как решить эту лабуду, пробовал и виджет от катрика, тоже самое, первый срабатывает остальные нет (
  • Вопрос задан
  • 1414 просмотров
Решения вопроса 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
1) используйте разные идентификаторы (у вас они есть)
2) запускайте на каждый новый экземпляр дэйтпикер.
Ответ написан
Ваш ответ на вопрос

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

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