jQuery下拉框多选插件verSelector.js

所属分类:输入-选择框

 36869  310  查看评论 (16)
分享到微信朋友圈
X
jQuery下拉框多选插件verSelector.js ie兼容9

更新时间:2020-04-05 20:29:45

更新说明:新增多选表单操作按钮(全选、反选、清空)


更新时间:2020-04-03 23:15:01

更新说明: 版本更新verSelector.js 2.0

一、使用须知:

verSelector.js是一款select下拉框多选与关键字筛选插件,解决了select控件不支持多选及搜索筛选的问题,2.0版本是在1.0版本的基础上进行优化提升,ui界面风格更加美化,针对许多网友提出的修改建议有做相关的参考。

二、使用方法

实例select选框

<div id="search"></div>
<script>
var select = new verjs_select();
select.render({
  elem: "#search",
  data: [{id: 1, name: "123456"}, {id: 2, name: "哈哈哈哈"}],
  init_value: [1],
  checkbox: true,
  name: "test"
});
</script>

render方法相关参数说明

参数名称参数类型缺省值参数说明
elemstringnull实例化select对象,推荐使用id
dataarray[]实例化对象选项
init_valuearray[]实例化对象默认选中的值
checkboxboolfalse是否开启多选,默认为关闭
namestringnull表单中的name键值,需要通过get_form_value获取,默认为空
bindidstringid表单中的键值,及selecte-option中的value值,在data中必须存在该值
keystringnameselect款中选项的显示值,在data中必须存在该值
heightstring35px选择框显示高度
widthstring220px选择框显示长度
body_heightnumber354下拉框高度
placeholderstring请选择选择框默认显示字符
search_textstring请输入搜索内容搜索框默认提示文字
empty_searchstring没有可选择信息空数据提示文字

get_form_value方法

获取select选中的值

携带参数

参数名称说明示例
selectedselect选择框,在实例化时的elem值select.get_form_value("search");

返回参数

如实例化是name值不为空则返回json数据,name值为空则返回选择的值。

get_value方法

获取select选中的参数

携带参数


参数名称说明示例
selectedselect选择框,在实例化时的elem值select.get_value("search");


返回参数

返回为一段json数组,为选中的data值


更新时间:2019/3/18 上午10:19:51

更新说明:修复下拉选框无法回缩的bug,同时更改多选按钮样式


verSelector.js 1.0

一、使用须知:

verSelector.js是一款select下拉框多选与关键字筛选插件,解决了select控件不支持多选及搜索筛选的问题

二、方法介绍

使用verSelector.js只需在js中new一个既可以使用,如下面实例:

new verSelector();
<div>
    <h5>单选</h5>
    <select name="search" id="search" data-selector>
        <option value="">请选择</option>
    </select>
</div>
<div>
    <h5>多选</h5>
    <select name="searchs" id="searchs" data-selector data-selector-checks="true">
        <option value="">请选择</option>
    </select>
</div>

三、属性说明

1, data参数

    • data-selector:插件关键字,在select中加入该关键字同时实例插件即可支持搜索相关关键词选择

    • data-selector-checks:多选关键词,加入关键词且赋值为true即可支持多选搜索条件,在加入此关键词之前需要加入data-selector关键词

2, IE浏览器暂时支持9.0以上版本使用

相关插件-选择框

jQuery双列表左右切换选择

左右切换选择,多项选择,并可以回到原始位置而不是向下或向上累加,超出出现滚动条
  选择框
 37790  372

jQuery房屋位置选择单选,整行选,全选

一个智能管理系统的楼层房屋选择
  选择框
 29878  319

jQuery多选带搜索

input多选搜索样式用的layui.css不喜欢的可自己调。其他JQ
  选择框
 34053  323

jQuery原创全国省份城市学校三级联动下拉列表

国内所有高校,按着省份,城市,学校,三级联动下拉列表。更能方便选择学校,学校为最新最全!!!!
  选择框
 31407  341

讨论这个项目(16)回答他人问题或分享插件使用方法奖励jQ币 评论用户自律公约

    蜗牛羞答答 0
    2020/12/24 16:48:54
    怎么监听插件里的点击事件? 回复
    jqueryInGa 0
    2020/9/14 16:03:06
    现在支持更新原本列表的内容吗,列表值发生变化似乎不行
    回复
    你丢猪了吗 0
    2020/6/16 15:53:18
    我使用 ajax 动态赋值 内容 为什么 全部是undefined
        it天空1
        2020/6/19 21:51:32
        暂时不支持动态赋值的,如果通过ajax动态获取的话可以再获取到值以后进行实例select
    回复
    。。 0
    2020/6/2 9:54:54
    问下就一个new verSelector();按你的的方法是会报错verSelector is not defined
        it天空0
        2020/6/19 21:49:48
        没有看到你的代码,无法定位问题的,可能是js的作用域
    回复
    please one more chance 3
    2019/12/27 14:01:16

    插件的ui挺好的
    回答下几个问题(ps:我做后端的,对原生js不是很精通,写的不好谅解):
    1.怎么初始化默认值:
    看了下代码,貌似没这个功能,所以需要改插件
    把verseect文件的第33行左右的defa_text赋值和defa_value赋值语句改成:

    var defa_value = it.value;
    var thoptions = it.querySelectorAll("option[value]");
    var defa_text = it.querySelector("option").innerText;
    [].forEach.call(thoptions, function(option) {
        if (option.getAttribute("value") == defa_value) {
            defa_text = option.innerText;
        }
    });

    2.解决搜索框删除所有搜索内容后下拉框消失的问题:

    items.classList.toggle("verSelector-focus-show");
    if (!items.classList.contains("verSelector-focus-show")) return false;
    替换成
    if (!items.classList.contains("verSelector-focus-show")) {
        items.classList.add("verSelector-focus-show");
    }

    3.如何获取选中的值

    $('.verSelector-input-list>input[name=这里写原来select的name值]').val();
        ?彡0
        2023/5/9 11:06:06
        牛啊牛啊
    回复
    Only。 0
    2019/12/18 17:24:39
    默认选中的怎么赋值呀 回复
    invengo 0
    2019/12/18 16:44:02
    移动端无法使用怎么办 回复
    cuibowen 0
    2019/12/4 13:59:30
    这里没有看到如何初始化,各个节点的回调函数 回复
    莫慌 0
    2019/12/3 16:10:48
    如何获取选中的值 回复
    Carry_U~ 0
    2019/10/9 19:01:31
    不能支持多个选项内容不同的多选框,如果有多个多选框的话,加载的选项内容都是一样的,想问下怎么解决。
        Carry_U~1
        2019/10/10 11:28:50
        var option = function() {
            document.onclick = function(e) {
                var target = e.target;
                //判断是否是下拉选框点击事件
                if (target.classList.contains("verSelector-one")) {
                    var op = e.target.parentElement.parentElement.previousElementSibling.childNodes; //-->真正获取option的列表
                    if (target.classList.contains("verSelector-text") || target.classList.contains("verSelector-caret")) {
                        target = target.parentElement;
                    }
                    var parent = target.parentElement;
                    _s(parent);
                    show_options(target, op); //-->多传一个参数给显示的方法
                } else if (target.classList.contains("verSelector-two")) {
                    return true;
                } else {
                    _s();
                }
                e.stopPropagation();
            }
        };

        var show_options = function (tar, op) {}在这个方法里面循环op就可以了 不用他的option

        [].forEach.call(op, function (i) {}
        var keyup_search = function () {}里同样修改 增加 op并传参
        op = ops.previousElementSibling.childNodes;
        show_options(this.parentElement.parentElement,op);
    回复
😃
  • 😀
  • 😉
  • 😥
  • 😵
  • 😫
  • 😘
  • 😡
  • 👍
  • 🌹
  • 👏
  • 🍺
  • 🍉
  • 🌙
  • 💖
  • 💔
😃
  • 😀
  • 😉
  • 😥
  • 😵
  • 😫
  • 😘
  • 😡
  • 👍
  • 🌹
  • 👏
  • 🍺
  • 🍉
  • 🌙
  • 💖
  • 💔
取消回复