Yii2 - 基于 dropDownList 显示表单字段

Yii2 - Show form fields based on dropDownList

我有以下下拉列表

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

我想做的是: 如果值为 = Sim,则被 css class 隐藏的其他一些表单域显示在 dropDownList 下方,如果值为 = Não,则表单域再次从页面隐藏.

我知道有一个 'onchange' 属性 像 javascript 但我不知道如何将它应用到这种效果,或者即使我需要使用它。

有什么想法吗?

很简单,你只需要:

$(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);
?>