Yii 2 ActiveForm表单字段如何在checkboxlist中实现"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();
?>
Run Code Online (Sandbox Code Playgroud)
1)在表单中添加复选框,如下所示:
echo Html::checkbox(null, false, [
'label' => 'Check all',
'class' => 'check-all',
]);
Run Code Online (Sandbox Code Playgroud)
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');
});
});
Run Code Online (Sandbox Code Playgroud)
替换#root-container-id为该字段的容器的实际ID.它应该是Model name + dash + MENU_DESC.在生成的html输出中查看它.或者您可以添加另一个名称为复选框的类或构建选择器,这取决于您.
然后注册这个js,最好是资产.
触发点击用于正确的客户端验证工作(如果已启用).
| 归档时间: |
|
| 查看次数: |
3115 次 |
| 最近记录: |