easyui前端实现多选框_easyui combobox复选框多选完整功能实现

前言:前端项目用的easyui,要实现下拉框多选,带有复选框全选全不选功能,可奈何easyui combobox原来就没有复选框Σ( ° △ °|||)︴,百度一堆文章实现的也都缺胳膊少腿的,用到的方法如getEl(target, value),在我这项目里也不能用,然后就有了这篇文章,是通用实现,而且功能实现的相对完整。

先放效果图:

当选中全选的时候勾选所有选项,取消选中全选的时候则取消勾选所有选项,而且实现了选项1到选项6只要有一个是非选中状态,那全选就不会是选中状态。

下面是具体实现代码:

页面代码

下面实现复选框功能的js代码

/**

* 带有复选框的easyui下拉框工具方法

* @param _id input标签的id

* @param optionsJson json字符串,定义选项的内容,

* 例子:

* [

* {id: '对应于option标签的value', text: '页面显示文本'}

* ]

* @param hight 下拉框高度

*/

function combobox_checkbox(_id, optionsJson, hight) {

$('#'+_id).combobox({

data: optionsJson,

valueField: 'id',

textField: 'text',

panelHeight: hight,

multiple: true,

editable: false,

formatter: function (row) { // formatter方法就是实现了在每个下拉选项前面增加checkbox框的方法

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

return '' + row[opts.textField]

},

onLoadSuccess: function () { // 下拉框数据加载成功调用

// 正常情况下是默认选中“所有”,但我想实现点击所有全选功能,这这样会冲突,暂时默认都不选

$("#"+_id).combobox('clear'); //清空

// var opts = $(this).combobox('options');

// var values = $('#'+_id).combobox('getValues');

// $.map(opts.data, function (opt) {

// if (opt.id === '') { // 将"所有"的复选框勾选

// $('#'+opt.domId + ' input[type="checkbox"]').prop("checked", true);

//

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值