Yii2-显示基于dropDownList的表单字段


Yii2 - Show form fields based on dropDownList

我有以下dropDownList

<?= $form->field($model, 'moradaalternativa')
    ->dropDownList(
        [
        'Não' => 'Não',
        'Sim' => 'Sim'],
        ['prompt'=>'Faça a sua escolha'],
    );
?>

我想做的是:如果值为=Sim,则被css类隐藏的其他一些表单字段将显示在dropDownList下方;如果值为=Não,则表单字段将再次隐藏在页面中。

我知道有一个类似javascript的"onchange"属性,但我不知道如何应用它,甚至不知道是否需要使用它

有什么想法吗

这很简单,您只需要:

$(document).ready(function () {
    $(document.body).on('change', '#your-id', function () {
        var val = $('#your-id').val();
        if(val > 0 ) {
          $('.class').hide();
        } else {
          $('.class').show();
        }
    });
});

只要根据需要更改名称即可。对于Yii2,你可以包装它,然后你可以把代码放在视图文件中,但最好把它放在JS文件中:

<?php
$script = <<< JS
code here
JS;
$this->registerJs($script);
?>