multiple-select 单选框多选框的用法

//说明 上次做了一个项目搞好用了这个插件 怎么都没有百度出来 现在搞完了给大家分享下

                  <div class="row">
                        <div class="col-sm-11">
                            <div class="input-group">
                                <span class="input-group-addon">
					               	 角色:
					             </span>
                                <div class="form-group">
                                    <select multiple="multiple" id="selectRoles 
                                             name="rolesSelect"></select>
                                    <input name="roles" id="rolesSelect" hidden/>
                                </div>
                            </div>
                        </div>
                    </div>

首先动态获取下拉框

function initRole() {
    $.post(ctx + "role/list", {}, function (r) {
        var data = r.rows;
        var option = "";
        for (var i = 0; i < data.length; i++) {
            option += "<option value='" + data[i].roleId + "'>" + data[i].roleName + "</option>"
        }
        $rolesSelect.html("").append(option);
        var options = {
            selectAllText: '所有角色',
            allSelected: '所有角色',
            width: '100%',
            onClose: function () {
                $roles.val($rolesSelect.val());
                validator.element("input[name='roles']");
            }
        };
        $rolesSelect.multipleSelect(options);
    });
}

 一个动态的拉下款就完成了

//如果你想换成单选的下拉框 加一个下面的

function initRole() {
    $.post(ctx + "role/list", {}, function (r) {
        var data = r.rows;
        var option = "";
        for (var i = 0; i < data.length; i++) {
            option += "<option value='" + data[i].roleId + "'>" + data[i].roleName + "</option>"
        }
        $rolesSelect.html("").append(option);
        var options = {
            single: true,  //单选加入这个 如果是多选去掉即可
            width: '100%',
            onClose: function () {
                $roles.val($rolesSelect.val());
                validator.element("input[name='roles']");
            }
        };
        $rolesSelect.multipleSelect(options);
    });
}

//下面是最重要的就是数据的回显 之前搞了我一天 多选的回显

  //数组
 var roleArr = [];
             //user.roleIds 回显的值 因为多选所有这一块要拆分一下
            for (var i = 0; i < user.roleIds.length; i++) {
                roleArr.push(user.roleIds[i]);
            }

       //数据的回显           
     $form.find("select[name='rolesSelect']").multipleSelect('setSelects', roleArr);
  //数据的选中     
$form.find("input[name='roles']").val($form.find("select[name='rolesSelect']").val());

//单选的回显

   //动态回显下拉框回显 赋值的时候一定要注意的是[] 这个框 之前一直没有加这个导致一直回显不了
            $("select[name='rolesSelect']").multipleSelect('setSelects',[user.roleID]);
            //动态下拉框回显以后赋值     
     $form.find("input[name='roles']").val($form.find("select[name='rolesSelect']").val());

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
el-select是一个基于Element UI的下拉选择框组件,支持单选、多选、远程搜索等功能。可以通过设置不同的属性来实现不同的功能,例如设置multiple属性可以实现多选功能,设置filterable属性可以实现搜索功能等。 以下是一个el-select的基本用法示例: ```html <el-select v-model="selectedOption" placeholder="请选择"> <el-option label="选项1" value="option1"></el-option> <el-option label="选项2" value="option2"></el-option> <el-option label="选项3" value="option3"></el-option> </el-select> ``` 其中,v-model绑定了一个名为selectedOption的变量,用于存储用户选择的值。placeholder属性设置了默认提示文本。 如果需要实现多选功能,可以在el-select上设置multiple属性: ```html <el-select v-model="selectedOptions" multiple placeholder="请选择"> <el-option label="选项1" value="option1"></el-option> <el-option label="选项2" value="option2"></el-option> <el-option label="选项3" value="option3"></el-option> </el-select> ``` 其中,v-model绑定了一个名为selectedOptions的数组,用于存储用户选择的多个值。 如果需要实现搜索功能,可以在el-select上设置filterable属性: ```html <el-select v-model="selectedOption" filterable placeholder="请选择"> <el-option label="选项1" value="option1"></el-option> <el-option label="选项2" value="option2"></el-option> <el-option label="选项3" value="option3"></el-option> </el-select> ``` 其中,filterable属性设置为true,表示开启搜索功能。 如果需要实现全选功能,可以在el-select上设置一个名为options的属性,用于存储所有可选项,然后在el-select上添加一个名为options的slot,用于自定义下拉框中的内容,包括全选按钮和可选项列表。具体实现方式可以参考以下代码: ```html <el-select v-model="selectedOptions" multiple placeholder="请选择" :options="options"> <template #options> <el-checkbox v-model="isAllSelected" @change="handleAllSelectedChange">全选</el-checkbox> <el-option v-for="option in options" :key="option.value" :label="option.label" :value="option.value" :disabled="option.disabled"> <el-checkbox v-model="selectedOptions" :label="option.value" :disabled="option.disabled">{{ option.label }}</el-checkbox> </el-option> </template> </el-select> ``` 其中,options属性存储了所有可选项,isAllSelected变量用于存储全选状态,handleAllSelectedChange方法用于处理全选状态变化事件。在options slot中,首先添加了一个el-checkbox用于全选,然后使用v-for循环遍历options数组,为每个可选项添加一个el-option,其中包含一个el-checkbox用于选择该项。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值