【问题标题】:Yii2 Optional textbox with Checkbox from databaseYii2 带有数据库复选框的可选文本框
【发布时间】:2016-01-25 12:23:29
【问题描述】:

我正在使用以下代码从数据库生成复选框。我需要为某些选项添加可选文本框。任何人都可以给我添加它的线索吗?

$form->field($model_detail, 'DOCUMENT_TYPE_ID')
       ->checkboxList(
        $listData,array('separator'=>'<BR />')
       )->label('Select Document(s)');

【问题讨论】:

  • 可选文本框是什么意思?
  • 如果您在复选框中没有选项,请指定,如果您需要 2016 年 1 月 26 日的任何文件,请指定。
  • 所以根据我的理解,如果在爱好 1) 玩游戏 2) 听音乐但我的爱好是 旅行 的复选框下有 2 个选项,那么我可以在文本框中输入单词旅行。我的理解和你的要求一样?
  • 是的,如果第三个选项是其他选项,并且如果用户选中它,那么应该会出现文本框,以便他/她可以输入 Traveling。
  • 你需要使用jQuery来实现。

标签: yii2 checkboxlist


【解决方案1】:

您应该扩展 ActiveField 并编写您的自定义 checkboxList 方法。它可能看起来像这样:

class ProjectActiveField extends ActiveField
{
    /**
     * @inheritdoc
     */
    public function checkboxList($items, $options = [])
    {
        $inputs = '';
        foreach ($items as $id => $value) {
            $input = Html::activeCheckbox($this->model, $this->$id, $options);
            $description = $options['itemDescriptions'][$id];
            if ($description) {
                $input = '<div class="checkbox">' . $description . $input . '</div>';
            }

            $inputs .= $input;
        }

        $this->adjustLabelFor($options);
        $this->parts['{input}'] = $inputs;

        return $this;
    }
}

【讨论】:

    猜你喜欢
    • 2022-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-30
    相关资源
    最近更新 更多