22 Select2 多选框问题
来源:互联网 发布:神硕微营销软件怎么样 编辑:程序博客网 时间:2024/05/01 19:02
下面两个弹出框, 对应于一个实体的增加, 删除, 二者是通过弹出层框架弹出来的
----------------------------------------------------------------------------------------------------
1). add
<div class="control-group" name="entityList" style="display:none" width="100px" ><label class="control-label">xx列表</label><div class="controls"><select class="select show-tick form-control" multiple name="entities" ><option value="${code1}" >${name2}</option><option value="${code1}" >${name2}</option></select></div></div>
2). update
<div class="control-group" name="entityList" style="display:none" ><label class="control-label">xx列表</label><div class="controls"><select class="select show-tick form-control" multiple name="entities" ><option value="${code1}" >${name2}</option><option value="${code1}" >${name2}</option></select></div></div>
----------------------------------------------------------------------------------------------------
1. 首先最开始是这样, 然后 没有其他的js脚本
出现的问题是 增加的多选框是正确的样式, 然后 更新的多选框样式就变了[少了样式, 变得不够美观, 但是其功能特性还在]
出现问题之后, 我就拿出了文本比较工具, 来比较两个form[包含上面的多选框代码片]的不同之处, 发现二者 没有什么不同的, 然后 做了一些其他的尝试啊[删除掉增加的弹出框中的这个select, 等等]什么的, 都没有见效
然后 找了一下前端的朋友, 来瞅瞅这个问题, 因为 问题比较奇葩, 因此 建议我重新找一个框架, 然后 我也准备重新找一个了,
2. 但是 今天早上来的时候, 看了一下 昨天的 一篇 Select2 的选择框的demo [http://www.tuicool.com/articles/nYVn22e] 然后 准备按照这个来处理,
----------------------------------------------------------------------------------------------------
// 增加脚本处理样式
$("[name='entities']").select2({tags: true});
----------------------------------------------------------------------------------------------------
然后 我把 "layero.find("[name='entities']").select2({tags: true});" 放在了 xx.js 的顶层[顶层, 还有require.js的导入, 还有其他的弹出层相关业务的处理]
结果 放在这里, 两个 都gg了,
然后 后来想了一下, 才是 弹出框的相关东西是动态加载加载进来的, 然后 我又放在了 xx.js 的顶层, 然后 当时 dom 中还没有对应的 节点, 因此 找不到, 没有达到预期的效果
然后 我把加载的代码放在了 弹出层的回调的逻辑中了, 这个 问题 差不多就是这样解决了
然后 至于 为什么在情况一的时候 会加载对应的样式呢 ?
弹出之前 根本找不到这个节点啊 ??
xx.js, require 导入了一个 selectInit 的js了, "$('select.select').each(function(){$(this).select2();})", 和这个 有什么关系吗?
为什么 第一个加载了样式, 然后 第二个没有加载对应的样式呢 ?
算了, 奇葩问题 先抛在这里吧,
对了, 还有一个 小问题, 我在选择框中搜索的时候, 输入了一个 多选框中不存在的选项, 然后 回车了一下, 这个选项居然选中了,
问题 是在于 这个 tag 选项, tag 文档介绍如下
----------------------------------------------------------------------------------------------------
Tagging support
Select2 can be used to quickly set up fields used for tagging.
Note that when tagging is enabled the user can select from pre-existing options or create a new tag by picking the first choice, which is what the user has typed into the search box so far.
----------------------------------------------------------------------------------------------------
附上部分测试代码
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1"/> <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no, minimal-ui"/> <meta name="format-detection" content="telephone=no, email=no"/> <meta name="renderer" content="webkit"> <title>Select2 多选框问题</title> <script type="text/javascript" src="https://cdn.bootcss.com/jquery/3.2.1/jquery.js"></script> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" crossorigin="anonymous"> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" crossorigin="anonymous"></script> <link href="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.3/css/select2.min.css" rel="stylesheet"/> <script src="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.3/js/select2.min.js"></script></head><body><select name="multiSelect" multiple="multiple" class="form-control"> <optgroup label="系统设置"> <option value="1">用户管理</option> <option value="2">角色管理</option> <option value="3">部门管理</option> <option value="4">菜单管理</option> </optgroup> <optgroup label="基础数据"> <option value="9">基础数据维护</option> </optgroup></select><hr style="height:1px;border:none;border-top:1px dashed #0066CC;" /><select name="multiSelect" multiple="multiple" class="form-control"> <option value="1">用户管理</option> <option value="2">角色管理</option> <option value="3">部门管理</option> <option value="4">菜单管理</option> <option value="9">基础数据维护</option></select><hr style="height:1px;border:none;border-top:1px dashed #0066CC;" /><select multiple="multiple" class="select2 show-tick form-control"> <option value="1">用户管理</option> <option value="2">角色管理</option> <option value="3">部门管理</option> <option value="4">菜单管理</option> <option value="9">基础数据维护</option></select><script type="text/javascript"> // 渲染所有的 select // $('select').select2(); // 单独使用配置指定的 节点 $("[name='multiSelect']").select2({ tags: true, maximumSelectionLength: 3 //最多能够选择的个数 });</script></body></html>
参考链接 :
http://select2.github.io/examples.html
http://www.tuicool.com/articles/nYVn22e
http://www.cnblogs.com/zhansu/p/5817250.html
http://blog.csdn.net/u010265663/article/details/50421858
http://www.cnblogs.com/SHMILYHP/p/6245041.html
阅读全文
0 0
- 22 Select2 多选框问题
- Select2 多选框
- select2
- select2
- select2
- select2
- select2
- select2使用问题--删除添加select2的DOM
- select2 选择的内容不能显示问题
- Select2相关问题(追加中)
- select2使用过程中的问题总结
- 关于select2动态设置默认值的问题
- Select2在model模态框中不能输入问题
- select2选中第一项无法显示问题
- vue下使用select2,绑定数据问题
- # 关于 \kartik\select2\Select2 在 Bootstrap 模态框内不能使用智能搜索的问题
- Rails中select2 实现多选框的效果
- select2插件 多选框动态初始化值
- 从数据库获取到的多个点(有具体的经纬度),显示在百度地图上
- 集合
- 计算机网络--TCP报文首部URG与PSH的区别
- CSS中背景图片的属性:background-repeat、background-position、background-size
- 对js闭包的理解
- 22 Select2 多选框问题
- SpringMVC <mvc:view-controller path=""/>标签
- php数据库操作
- php中的spl
- 常用工具
- listview的多条目加载的适配器
- PHP编程效率的20个要点
- 折半查找算法
- Linux 文件颜色