multiselect多选下拉框的使用,回显,清空

实现基于bootstrap-multiselect多选框的选择、回显、清空
1、先引用对应的js与css

<script type="text/javascript" src="/jquery-1.12.4.min.js"></script>
<script type="text/javascript" src="/bootstrap/js/bootstrap.js"></script>
<link rel="stylesheet" href="/bootstrap/css/bootstrap.css" type="text/css"/>			
<script type="text/javascript" src="/js/bootstrap-multiselect.js"></script>
<link rel="stylesheet" href="/css/bootstrap-multiselect.css" type="text/css"/>

2、html代码

<div id="mulDiv">
<select class="form-control" id="multiselect" multiple> <!-- 这里加上multiple为多选-->
	<option value="1">广东</option>
	<option value="2">广西</option>
	<option value="3">湖南</option>
	<option value="4">江西</option>
<select>
<div>

3、js代码

$(fucntion(){
	//初始化
	$("#multiselect").multiselect({   
		buttonWidth:150px, //这里可以设置多选框的样式等各种属性
    });
    //获取多选框的值,和一般获取值一样,只是获取到的是一个数组,如果要转为string,可以先判断非空后  .toString();即可
    var multiselectarr =$("#multiselect").val();
    //多选的回显,比如后台传过来的该字段的值为:multiselect_str = 1,2,3
    if(multiselect_str .indexOf(",")>-1){
    	var multiselect_arr = multiselect_str.split(",");//以逗号分割为数组
    	var multiselect_arr2 = [];//定义一个空数组
    	for(var i=0;i<multiselect_arr.length;i++){
    		multiselect_arr2.push(multiselect_arr[i]);
    	}
    	$("#multiselect").multiselect('select',multiselect_arr2);//原本直接把分割的数组multiselect_arr 放进去不生效
    }else{//如果返回的只是multiselect_str = 2
		$("#multiselect").multiselect('select',[multiselect_str ]);
	}
	//多选框的清空
	$("select option").attr("selected",false);
	$("#multiselect input[type='checkbox']").each(fucntion(){this.checked=false;});//把这个div下的input为checkbox的清空
	$("li").removeClass("active");//把每一个下拉选项的li的class属性的active去掉
});
  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
在 Extjs 中,可以通过设置 `multiSelect` 属性为 `true` 来实现下拉框多选回显则需要先获取到下拉框组件的值,然后将其赋值给需要回显的表单元素。 例如,在以下代码中,我们创建了一个下拉框组件,设置了 `multiSelect` 为 `true`,并将其添加到了表单中。当用户选择完选项后,点击保存按钮时,我们可以获取到下拉框的值,然后将其赋值给一个隐藏的表单元素,以便在下一次打开表单时进行回显。 ```javascript Ext.create('Ext.form.Panel', { title: 'My Form', items: [{ xtype: 'combo', fieldLabel: 'Choose Options', multiSelect: true, store: ['Option 1', 'Option 2', 'Option 3'], displayField: 'name', valueField: 'value' }, { xtype: 'hidden', name: 'selectedOptions' // 隐藏表单元素,用于回显 }], buttons: [{ text: 'Save', handler: function() { var form = this.up('form').getForm(); var selectedOptions = form.findField('selectedOptions'); var combo = form.findField('combo'); var value = combo.getValue(); selectedOptions.setValue(value); // 将下拉框的值赋值给隐藏表单元素 form.submit({ success: function() { Ext.Msg.alert('Success', 'Form submitted successfully.'); }, failure: function() { Ext.Msg.alert('Error', 'Form submission failed.'); } }); } }] }); ``` 在打开表单时,我们需要先获取到隐藏元素的值,然后将其赋值给下拉框组件。代码如下: ```javascript var form = Ext.create('Ext.form.Panel', { title: 'My Form', items: [{ xtype: 'combo', fieldLabel: 'Choose Options', multiSelect: true, store: ['Option 1', 'Option 2', 'Option 3'], displayField: 'name', valueField: 'value' }, { xtype: 'hidden', name: 'selectedOptions', value: ['Option 1', 'Option 2'] // 设置隐藏表单元素的初始值,用于回显 }] }); var selectedOptions = form.getForm().findField('selectedOptions').getValue(); var combo = form.getForm().findField('combo'); combo.setValue(selectedOptions); // 将隐藏表单元素的值赋值给下拉框组件 ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值