jquery easyui 多选下拉框的实现

修改官方提供的demo实例,本来是单选的,让她编程多选,完成了勾选和去勾选的所有功能。

 1 <!DOCTYPE html>
 2 <html>
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>Basic Combo - jQuery EasyUI Demo</title>
 6     <link rel="stylesheet" type="text/css" href="../../themes/default/easyui.css">
 7     <link rel="stylesheet" type="text/css" href="../../themes/icon.css">
 8     <link rel="stylesheet" type="text/css" href="../demo.css">
 9     <script type="text/javascript" src="../../jquery.min.js"></script>
10     <script type="text/javascript" src="../../jquery.easyui.min.js"></script>
11 </head>
12 <body>
13     <h2>Basic Combo</h2>
14     <p>Click the right arrow button to show drop down panel that can be filled with any content.</p>
15     <div style="margin:20px 0"></div>
16     <select id="cc" style="width:150px"></select>
17     <div id="sp">
18         <div style="color:#99BBE8;background:#fafafa;padding:5px;">Select a language</div>
19         <div style="padding:10px">
20             <input type="checkbox" name="lang" value="01"><span>Java</span><br/>
21             <input type="checkbox" name="lang" value="02"><span>C#</span><br/>
22             <input type="checkbox" name="lang" value="03"><span>Ruby</span><br/>
23             <input type="checkbox" name="lang" value="04"><span>Basic</span><br/>
24             <input type="checkbox" name="lang" value="05"><span>Fortran</span>
25         </div>
26     </div>
27     <script type="text/javascript">
28
29         $(function(){
30             var s=",";//设定分隔付
31             $(‘#cc‘).combo({
32                 required:true,//是否验证
33                 editable:true,//是否可编辑
34                 multiple:true//可否支持多选
35             });
36             $(‘#sp‘).appendTo($(‘#cc‘).combo(‘panel‘));
37             $(‘#sp input‘).click(function(){
38                 var v = $(this).next(‘span‘).text();
39                 if("," == s){//第一次勾选时起作用
40                     s = $(this).next(‘span‘).text();
41                 }else if(-1 < s.indexOf(v)){//当去掉勾选时起作用
42                     var n = s.indexOf(v);
43                     var m = s.indexOf(v)+v.length;
44                     if(0 == s.indexOf(v)){//取消第一个点击的勾选
45                         s = s.substring(n+v.length+1,s.length);
46                     }else if(0 < s.indexOf(v) && ((s.indexOf(v) + v.length) < s.length)){//取消非第一个和最后一个的勾选
47                         s = s.substring(0,n) + s.substring(n + v.length+1,s.length);
48                     }else{//取消最后一个的勾选
49                         s = s.substring(0,n-1);
50                     }              if(null == s || "" == s){                //回调自己              }
51                 }else{
52                     s = s + "," + $(this).next(‘span‘).text();//将勾选各值拼接
53                 }
54                 $(‘#cc‘).combo(‘setValue‘, s).combo(‘setText‘, s).combo(‘showPanel‘);//将值赋值给文本框并在文本里显示出来
55             });
56         });
57     </script>
58 </body>
59 </html>
时间: 2024-10-11 15:04:19

jquery easyui 多选下拉框的实现的相关文章

页面多选下拉框 jquery.multiple.select

1.首先引用jquery.multiple.select.js.multiple-select.css 2.在页面select下拉列表里面加一个multiple="multiple" <select name="nimbusHost" id="nimbusHost" multiple="multiple"> <c:forEach items="${stormIps}" var="

query多选下拉框插件 jquery-multiselect(修改)

其实网上关于该控件的使用教程已经很多了,其中 query多选下拉框插件 jquery-multiselect Jquery多选下拉列表插件jquery multiselect功能介绍及使用 这2个的介绍已经比较详细了,尤其是第二个有扩展MyValues函数,只是扩展有些bug,这里我在提出一些我的扩展,我们应该把multiValues属性定义在options里面,让每个multiselect控件都有自己的multiValues属性.我这里还需要一个获取text的方法.有关Myvalues和Myt

MVC实现多选下拉框

借助Chosen Plugin可以实现多选下拉框. 选择多项: 设置选项数量,比如设置最多允许2个选项: 考虑到多选下拉<select multiple="multiple"...></select>选中项是string数组,Model应该这样设计: using System.Collections.Generic; using System.Web.Mvc; namespace MvcApplication1.Models { public class Car

jQuery自定义漂亮的下拉框插件8种效果演示

原始的下拉框不好看这里推荐一个jQuery自定义漂亮的下拉框插件8种效果演示 在线预览 下载地址 实例代码 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 <!DOCTYPE html> <html lang="en" class=

多选下拉框带搜索(aps.net)

自己写了一个带搜索功能的多选下拉框,为了要获取值,就没有封装插件,实现思路 1.一个文本框 做搜索 2.一个文本框显示选中文本,一个隐藏控件存值 3.一个div里面绑定CheckBoxList控件(这里,你也可以请求后直接插入checkbox) 代码 1.一个变量把div的html存起来 2.选中就加到文本框,取消就减掉 //选中记录,反选删除 $("#divChkList :checkbox").each(function () { $(this).click(function ()

Html 多选下拉框

1.css文件 span.dropList {display:inline-block; height:20px;border:1px solid #ccc;  cursor:pointer; background:url(../images/xj.png) #fff no-repeat center right; font-size:12px; line-height:20px;padding-right:10px; position:relative;} span.dropList .Che

easyui的combobox下拉框初始化默认值以及保持该值一直显示的方法

easyui的combobox下拉框默认初始值是空,下面是实现从远程加载数据之后初始化默认值,以及让该值一直排在下拉框的最顶部的方式. 目前的需求是需要在初始化的时候添加"全部数据库"字段,并且在下拉的时候,"全部数据库"一直排在最顶部. 初始化效果如下: 下拉之后的效果如下: 实现方式: easyui的combobox有一个loader属性,easyui的API对loader属性说明如下: easyui的combobox有一个onLoadSuccess事件,eas

Extjs4.2 多选下拉框

//多选下拉框 Ext.define('MDM.view.custom.MultiComboBox', { extend: 'Ext.form.ComboBox', alias: 'widget.multicombobox', xtype: 'multicombobox', initComponent: function() { this.multiSelect = true; this.listConfig = { itemTpl: Ext.create('Ext.XTemplate', '<

ExtJs5.1多选下拉框CheckComb

ExtJs这么多个版本了,可就是不提供多选下拉框,老外不用这个玩意吗? 5都出来这么久了,新写的项目就用5吧,把以前Extjs4.2的时搜到前人的CheckComb改巴改巴,能用了就赶紧贴上来,没有仔细测试各种情况. Ext.define('Ext.ux.CheckCombo', { extend : 'Ext.form.field.ComboBox', alias : 'widget.checkcombo', multiSelect : true, allSelector : false, n