如何让用户在 yii2 的表单中隐藏和取消隐藏一些下拉列表

How to get a user to hide and unhide a few dropdown lists in a form in yii2

我正在尝试创建一个搜索表单,我想在其中隐藏表单中的一些下拉列表字段。如果用户选择,他们可以取消隐藏它(如高级搜索选项)。有没有办法在 yii2 中做到这一点?还是我必须使用 javascript 或 jquery?

还有一种方法可以定义下拉列表字段的大小。我知道你是否使用

textInput([style'=>'width:100px']); 

这将用于输入文本字段,但对于下拉字段呢

<?php 
$form = ActiveForm::begin([
'id' =>'-search-form-inline',
'formConfig'=>['showlabels' =>false],
'type'=> ActiveForm::TYPE_INLINE
]); 
?>
<div>
  <?php 
    echo $form->field($model, 'spec')
    ->dropDownList(
        $specialities,    
        ['prompt'=>'Any Speciality']  
    )->label('Speciality');
  ?>

  <?php 
    echo $form->field($model, 'zipcode')
    ->textInput(['maxlength'=>10,'style'=>'width:100px']);
  ?>
</div>

  <?php 
    echo $form->field($model, 'proc')
    ->dropDownList(
        $procedures,   
        ['prompt'=>'Any Procedures / Tests']  
    )->label('Procedures/Tests');
  ?>

  <?php echo $form->field($model, 'minc')
    ->dropDownList(
        $mincash,      
        ['prompt'=>'Any Min']   
    )->label('Minimum')
     ->Input(['maxlength'=>10,'style'=>'width:100px']);
  ?>

  <?php echo $form->field($model, 'maxc')
    ->dropDownList(
        $maxcash,       
        ['prompt'=>'Any Max']   
    )->label('Maximum');
  ?>

这是第一个例子。这里我们使用默认隐藏的容器div。

<?php
$this->registerJs("
    $('#extended-search-lnk').on('click', function(e){
        e.preventDefault();
        $('#extended-search').toggle();
    })
");
?>
<a href="#" id="extended-search-lnk">Extended Search</a>
<div id="extended-search" style="display: none;">
  <?php echo $form->field($model, 'minc')
    ->dropDownList(
        $mincash,      
        ['prompt'=>'Any Min']   
    )->label('Minimum')
     ->Input(['maxlength'=>10,'style'=>'width:100px']);
  ?>
</div>

这是第二个。在这里,我们切换指定下拉菜单的可见性

<?php
$minc_attr_id = Html::getInputId($model, 'minc');

$this->registerJs("
    $('#extended-search-lnk').on('click', function(e){
        e.preventDefault();
        $('#".$minc_attr_id."').toggle();
    })
");
?>
<a href="#" id="extended-search-lnk">Extended Search</a>
<?php echo $form->field($model, 'minc')
  ->dropDownList(
      $mincash,      
      ['prompt'=>'Any Min']   
  )->label('Minimum')
   ->Input(['maxlength'=>10,'style'=>'width:100px']);
?>