10 09/2014

selectize js

最后更新: Wed Sep 10 2014 12:37:50 GMT+0800

selectize 和 select2 类似。

根据 input value 生成 selectize

<input id="slz1" type="text" value="郭爽,共扫">
jQuery(function($){
    $('#slz1').selectize();
});

根据 select multiple 生成 selectize

当前值:

<p style="padding:10px 0;">当前值:<input id="slz2-input" style="font-size:1em;padding:3px 5px;" /></p>
<select id="slz2" multiple><option value="shaanxi" selected>陕西</option><option value="beijing">北京</option><option value="henan">河南</option><option value="shanxi">山西</option><option value="hebei">河北</option></select>
jQuery(function($){
    $('#slz2').selectize({
        dropdownParent: 'body',
        maxItems: 3,
        // onChange: function(v){
        //     console.log(v);
        // }
    }).on('change',function(){
        $('#slz2-input').val($(this).val());
    })
})

两种 change 都可以;maxItems 最多选择数量;dropdownParent: ‘body’ DOM 在 body 标签,避免被 position:relative;overflow:hidden 的元素 盖住!

js 生成 select option

当前值:

<p style="padding:10px 0;">当前值:<input id="slz3-input" style="font-size:1em;padding:3px 5px;" /></p>
<input id="slz3" type="text" value="">
jQuery(function($){
    $('#slz3').selectize({
        valueField: 'id',
    labelField: 'title',
    searchField: 'id',
        options:[
            {id:11,title:'科学家',url:'#1'},
            {id:22,title:'歌唱家',url:'#1'},
            {id:33,title:'前端',url:'#1'},
            {id:44,title:'程序员',url:'#1'}
        ],
        create: true
    }).on('change',function(){
        $('#slz3-input').val($(this).val());
    });
});

select 单选 js 控制

山西台湾

selectize 自定义

$('#slz5').selectize({
        delimiter: ',',
        dropdownParent: 'body',
        valueField: 'title',
    searchField: 'title',
    options:[
        {title:'search'},
        {title:'home'},
        {title:'heart'},
        {title:'film'},
        {title:'off'},
        {title:'user'}
    ],
        render:{
            option:function(data){
                return '<div class="option"><i class="icon-'+data.title+'"></i> <span class="title">'+data.title+'</span></div>';
            },
            item:function(data){
                return '<div class="item"><i class="icon-'+data.title+'"></i> '+data.title+'</div>';
            }
        },
        create:function(input){
            return {title:input}
        }
    });

更多说明

  • standalone 不需要 jquery 的版本。
  • selectize.css — Core styles
  • selectize.default.css — Default theme (with core styles)
  • ie8 需要
    <!--[if lt IE 9]><script src="http://cdnjs.cloudflare.com/ajax/libs/es5-shim/2.0.8/es5-shim.min.js"></script><![endif]-->
  • 可以跑 grunt
  • $(‘#select-locked’)[0].selectize.lock() 锁定(类似 disabled)

via https://github.com/brianreavis/selectize.js