有没有办法捕获在ActiveCheckboxList中检查了哪个项目,以便能够根据该值修改表单?
<?= $form->field($model, 'options')->checkBoxList($options) ?>
这会生成(如预期的)HTML
<div id="classname-options">
标记包含一系列带有名称,值和数据索引的复选框输入类型。选中特定选项后,我想在表单上切换隐藏/取消隐藏另一个字段。
使用单个复选框,我总是为其输入标记分配一个id并使用js处理程序。但我不知道如何使用复选框列表,所以我假设我必须检查DOM中的值...?
提前感谢您的帮助。
答案 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);
?>
如果你有更好的方法,请告诉我。否则,希望这有助于其他人。