Yii 2 ActiveForm表单字段如何实现" select all" checkboxlist中的选项?

时间:2015-01-21 03:35:01

标签: yii2 checkboxlist

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

1 个答案:

答案 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

触发点击用于正确的客户端验证工作(如果已启用)。