select2 插件

  项目功能需求一个好看的多选插件,支持删除那种,同组后台推荐以前用过的一款基于 jquery 的插件:select2,查了一下,嗯,跟需求的一样!

  使用插件,需要引入:

<script src="jquery-1.11.3.js"></script>
<script src="select2.js"></script>
<link rel="stylesheet" href="select2.css">

  插件直接使用命令 npm install select2 下载的,吼吼。

  接着,页面中要有一个 select 标签,像这样:

<select id="s1" onchange="valueChange()" style=" 50%" data-close-on-select="false"></select>

  这里我加了当值改变调用的方法,可以通过方法获取到选中的值,这个后面再讲,width 可控,data-close-on-select 这个属性则是为了多选使用的,当初查了 N 久才搞定,选择下拉框值默认是选一次关闭一次,想再选就再点击打开,而此属性置 false 则可以进行多次点击而不关闭了。

  初始化:

$("#s1").select2({
    placeholder: '请选择',
    multiple: true
});

  设置多选,设置文本框空时提示。

  加载数据,它本身自带 ajax 请求,但项目已经封装好了请求,直接将数据给它传进去就行,所以这里就不介绍它自带的了。

  1、可以直接给 data 赋值:

 var data = [
    { id: 0, text: 'red', color: 'red'},
    { id: 1, text: 'blue', color: 'blue' },
    { id: 2, text: 'yellow', color: 'yellow' }
];
 $("#s1").select2({
    data: data
});

  2、也可以进行 append 添加直接设置选中:

function initT () {
    //初始化选中
    $("#s1").append(new Option("red", 1, false, true));
    $("#s1").append(new Option("blue", 2, false, true));
}

  我们可以打开页面看效果了:

  你会发现挺丑的。。。

  更改个样式:

<style>
    .box {
        text-align: center;
        margin-top:30px;
    }
    .box .select2-container--default .select2-selection--multiple .select2-selection__choice {
        background-color: #fff;
        border: 1px solid #aaa;
    }
    .box .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {
        color: #fff;
        border: 1px solid #ccc;
        background: #ccc;
        border-radius: 9px;
        float: right;
        font-size: 12px;
        margin-left: 4px;
        margin-top: 1px;
    }
    .box .select2-container--default .select2-results__option[aria-selected=true] {
        background-color: #eee;
    }
</style>

  这回看着还可以:

  刚 onchange 事件方法获取值,这样使用:

var reslist=$("#s1").select2("data");

  哈哈,你要的数据都在这里,解析就好啦。

原文地址:https://www.cnblogs.com/guofan/p/6879505.html