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

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

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

Войти через TM ID
Похожие вопросы
Max.Credit Санкт-Петербург
от 150 000 до 150 000 руб.
Willz Москва
от 150 000 руб.
Fmedia Санкт-Петербург
от 40 000 до 100 000 руб.
16 авг. 2018, в 20:57
2500 руб./за проект
16 авг. 2018, в 19:25
5000 руб./за проект
16 авг. 2018, в 17:28
25000 руб./за проект