Как сбросить kartik depdrop в исходное состояние с начальными данными - PullRequest
0 голосов
/ 23 апреля 2020

У меня есть депонирование в моем проекте, как

 <?= $form->field($model, 'neighborhood_id')->widget(Select2::classname(), [
    'data' => ArrayHelper::map($query,'id','placeWithCity'),
    'options' => ['placeholder' => 'Select Your Neighborhood','id'=>'select_place'],
])->label(false); ?> 

И

<?=$form->field($model, 'building_id')->widget(DepDrop::classname(), [
    'data' =>ArrayHelper::map(Buildings::find()->all(),'id','buildingWithPlace'),
    'options' => ['placeholder' => 'Select The Building','id'=>'select_building'],
    'type' => DepDrop::TYPE_SELECT2,
    'pluginOptions' => [
        'depends' => ['select_place'],
        'url'=>Url::to(['property-commercial-rent/buildings']),
        'loadingText' => 'Loading buildings ...',
    ]
])->label(false);?>

Второй выпадающий список зависит от первого. Первоначально они оба имеют полный список данных без каких-либо Когда я выбираю район в первом раскрывающемся списке, второй заполняется названиями зданий в этом районе. Тогда у меня есть кнопка сброса, как и есть действие, как

$( "#reset-location" ).click(function() {
  $(select_place).val('').trigger('change');
  $(select_building).val('').trigger('change');
});

И этот щелчок сбрасывает оба select. Но проблема в том, что здание имеет только элементы в ранее выбранной окрестности. Я хочу сделать это все как на начальном этапе. Как я могу это сделать

1 Ответ

0 голосов
/ 24 апреля 2020

Вам не нужна кнопка сброса. В поле соседства разрешите очистку, поэтому это будет выглядеть так:

<?= $form->field($model, 'neighborhood_id')->widget(Select2::classname(), [
        'data' => ArrayHelper::map($query,'id','placeWithCity'),
        'options' => ['placeholder' => 'Select Your Neighborhood','id'=>'select_place'],
        'pluginOptions' => [
            'allowClear' => true
        ],
])->label(false); ?>

Тогда в поле появится топор, чтобы очистить его.

...