在selectize.js单项选择

时间:2017-02-01 13:49:06

标签: javascript jquery selectize.js

Selectize单项选择中,在第一个字符输入选择框后开始搜索。

我需要搜索才能在搜索框中输入三个字符后才开始。

任何人都可以建议如何做到这一点吗?

3 个答案:

答案 0 :(得分:1)

在Selectize演示示例中,您可以找到以下行:

jQuery('#select-car').selectize({
    valueField: 'id',
    labelField: 'title',
    searchField: 'title',
    options: [],
    load: function(query, callback) {
    if (query.length < 3) return callback(); //if (!query.length)
    $.ajax({
        url: 'search/',
        type: 'GET',
        dataType: 'json',
        data: {
            car: query,
        },
        error: function() {
            callback();
        },
        success: function(res) {
            callback(res);
        }
    });
  }
});

您可以将其更改为:

gEnumToString

例如,在我的情况下,我得到表单Ajax调用一些&#34; car / vechicles&#34;列表:

gEnumFromString

问候。

答案 1 :(得分:0)

document.getElementById('text').onkeyup = function(){
     if(document.getElementById("input-tags").value.length > 3)
     {
         $('#input-tags').selectize({
           // ....Enter Your Code....
         });
     }
}

答案 2 :(得分:0)

仅使用查询长度if (query.length < 3) return callback();的问题是当您从输入中删除所有字符并重新键入时,它不起作用,因为已经填充了选项。 尝试以下方法,你会很高兴。

  $(document).ready(function(){
     $('#formid').keyup(function(){
        var len = $(this).find('div.selectize-input.items input').val().length;
        if(len < 3){
            $('.selectize-dropdown.js_client_search').css('display','none');
        }else{
            $('.selectize-dropdown.js_client_search').css('display','');
        }
    });
});

然后拨打您的选择

$('.js_client_search').selectize({
        load: function(query, callback) {
            if (query.length < 3){
                return callback();
            }else{
                $.ajax({
                    url: 'search/',
                    type: 'GET',
                    dataType: 'json',
                    data: {
                        car: query,
                    },
                    error: function() {
                        callback();
                    }, 
                    success: function(res) {
                        callback(res);
                    }
                 });
            }