Yii2 ActiveCheckboxList项目检查事件

时间:2016-11-20 18:16:18

标签: jquery yii2

有没有办法捕获在ActiveCheckboxList中检查了哪个项目,以便能够根据该值修改表单?

<?= $form->field($model, 'options')->checkBoxList($options) ?>

这会生成(如预期的)HTML

<div id="classname-options"> 

标记包含一系列带有名称,值和数据索引的复选框输入类型。选中特定选项后,我想在表单上切换隐藏/取消隐藏另一个字段。

使用单个复选框,我总是为其输入标记分配一个id并使用js处理程序。但我不知道如何使用复选框列表,所以我假设我必须检查DOM中的值...?

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

好的,这就是我做的工作。本质上,包含div的JQuery更改事件处理程序检查列表中的每个复选框的值 - 在我的示例中,我正在寻找&#34; CC。&#34; (我事先并不知道哪个项目具有该值,因此我无法通过数据索引进行检查。)

这是我视图文件中的JS。:

<?php 
$script = <<< JS
$(function() {
        $('#otherfieldlbl').hide();
        $('#otherfield').hide();
})
$('#member-options').change(function() {
    var ccexists = false;
    $('#member-options input:checked').each(function() {
        if ($(this).attr('value') == 'CC') {
            ccexists = true;
        }
    });
    if (ccexists == true) {
        $('#otherfieldlbl').show();
        $('#otherfield').show();
    } else {
        $('#otherfieldlbl').hide();
        $('#otherfield').hide();
    };
});
JS;
$this->registerJs($script);
?>

如果你有更好的方法,请告诉我。否则,希望这有助于其他人。