我的项目中有一个Depdrop,例如
<?= $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');
});
然后单击以重置两个选择。但是问题是建筑物只有先前选择的邻域下的项目。我希望使它像初始阶段一样。如何执行此操作
您不需要重置按钮。在邻居字段上,请清除,因此将是这样
<?= $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); ?>
然后该字段中将出现一个x以清除它。