easyui前端实现多选框_关于easyUI中combobox多选并附加checkbox的实现

本文介绍了如何在EasyUI的Combobox基础上进行重写,以实现带Checkbox的多选效果。主要涉及的方法包括:format、onShowPanel、onLoadSuccess、onSelect和onUnselect。通过修改这些方法,可以使得Combobox的选项中出现Checkbox,并且能实现多选功能。
摘要由CSDN通过智能技术生成

在easyUI的基础组件中combobox只有带radiobutton的效果,而且只支持单选。

但是我们可以在此控件的基础上,对combobox进行重写,就能够实现checkbox多选效果。

大致需要重写以下几个方法:

format : function(row){

var opts = $(this).combobox("options");

return "" + row[opts.textField];

}

onShowPanel : function(){

var opts = $(this).combobox("options");

target = this;

var values = $(target).combobox("getValues");

$.map(values, function(value){

var children = $(target).combobox("panel").children();

$.each(children, function(index, obj){

if(value == obj.getAttribute("value") && obj.children && obj.children.length > 0){

obj.children[0].checked = true;

}

});

});

}

onLoadSuccess : function(){

var opts = $(this).combobox("options");

var target = this;

var values = $(target).combobox("getValues");

$.map(values, function(value){

var children = $(target).combobox("panel").children();

$.each(children, function(index, obj){

if(value == obj.getAttribute("value") && obj.children && obj.children.length > 0){

obj.children[0].checked = true;

}

});

});

}

onSelect : function(row){

var opts = $(this).combobox("options");

var objCom = null;

var children = $(this).combobox("panel").children();

$.each(children, function(index, obj){

if(row[opts.valueField] == obj.getAttribute("value")){

objCom = obj;

}

});

if(objCom != null && objCom.children && objCom.children.length > 0){

objCom.children[0].checked = true;

}

}

onUnselect : function(row){

var opts = $(this).combobox("options");

var objCom = null;

var children = $(this).combobox("panel").children();

$.each(children, function(index, obj){

if(row[opts.valueField] == obj.getAttribute("value")){

objCom = obj;

}

});

if(objCom != null && objCom.children && objCom.children.length > 0){

objCom.children[0].checked = false;

}

}

重写以上方法后,就能够实现combobox的带checkbox的多选

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值