Yii 2 ActiveForm表单字段如何实现" select all"复选框列表中的选项?
<?php
$form = ActiveForm::begin([
'id' => 'form-id',
'type' => ActiveForm::TYPE_HORIZONTAL,
'options' => ['class' => 'well'],
]);
?>
<?php
echo $form->field($model, 'MY_DESC', ['template' => "{label}\n{input}\n{hint}\n{error}"])
->label(false)
->checkboxList($mylist, ['separator' => '<hr>']);
?>
<?= Html::submitButton('submit', ['class' => 'btn btn-primary']) ?>
<?php ActiveForm::end();
?>
答案 0 :(得分:6)
1)将checkbox添加到您的表单中,如下所示:
echo Html::checkbox(null, false, [
'label' => 'Check all',
'class' => 'check-all',
]);
2)添加一些javascript以使其正常工作:
$('.check-all').click(function() {
var selector = $(this).is(':checked') ? ':not(:checked)' : ':checked';
$('#root-container-id input[type="checkbox"]' + selector).each(function() {
$(this).trigger('click');
});
});
将#root-container-id
替换为该字段的容器的实际ID。它应该是Model name + dash + MENU_DESC。在生成的html输出中查看它。或者您可以添加另一个名称为复选框的类或构建选择器,这取决于您。
然后注册这个js,最好是assets。
触发点击用于正确的客户端验证工作(如果已启用)。