200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > yii框架的下拉框多选 设置默认值等(dropDownList)

yii框架的下拉框多选 设置默认值等(dropDownList)

时间:2019-05-15 01:26:30

相关推荐

yii框架的下拉框多选 设置默认值等(dropDownList)

一、前言

根据需求,需要更改下拉框为多选框。本来以为只是很简单的东西,但是实际修改起来却碰到不少bug,多选框无法选中,给多选框赋默认值等。这里记录一下

二、修改单选下拉框为多选下拉框

echo $form->field($model, 'project_id', ['inputOptions' => ['multiple' => 'multiple',//这里加上'style'=>'width:100%;','size'=>10],])->dropDownList(数组);

三、多选下拉框无法选中的问题

明明这个插件已经显示是多选框了,但是我每次多选的时候,他都会自动取消,始终都是保持单选的状态。后来一直找问题,终于发现,原因是yii自带的activeForm.js会自动验证,因为默认是选一个,所以在选两个的时候会报错。

既然知道原因了,那解决方案也很简单,就是禁用activeForm.js (yii/assets/activeForm.js),因为博主的这个页面,禁用掉activeForm.js也没问题,所以博主才禁用的。大家根据自己的实际情况灵活选择吧。

$form = ActiveForm::begin(['id' => $model->formName(),'enableAjaxValidation' => false,'enableClientScript' => false, //禁用yii自带的activeForm.js'enableClientValidation' => false, //禁用yii自带的activeForm.js

参考链接:/question/229

禁用之后,我们的多选框就能正常多选,传值了。打印传值方式为:

array(5) {[0]=>string(2) "11"[1]=>string(2) "12"[2]=>string(1) "5"[3]=>string(1) "2"[4]=>string(1) "1"}

四、给下拉框默认值

这部分博主在网上百度了很久,刚开始很多人都说设置prompt就可以了,后来才发现,这个prompt只是设置下拉框的默认头部文字,并不是我们想要的。我们想要的是,下拉框的有些值从一开始就是被selected的。

1、通过$model赋值

$model->name = 2; //把value = 2的设为默认值,这里的name必须和下面的field里面的name保持一样echo $form->field($model, 'name', ['inputOptions' => ['multiple' => 'multiple',//这里加上'style'=>'width:100%;','size'=>10],])->dropDownList(数组);

2、赋多个默认值

echo $form->field($model, 'project_id', ['inputOptions' => ['multiple' => 'multiple',//这里加上,成为多选框'style'=>'width:100%;',],])->dropDownList(数组,['options' => ['3' => ['selected' => 'selected'],'4'=>['selected'=>'selected']],]);

这里是给了个options参数,里面可以是个数组,对应的就是我们要给默认值的选项。

效果如图:

这样,我们的下拉框就自带的有默认值了,挺方便的,个人更推荐第二种吧,给多个默认值,看着也顺眼些。

end

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。