如何在select2上调用“如果没有搜索结果”?

时间:2014-02-04 17:13:14

标签: javascript jquery jquery-select2

美好的一天,

如何在select2上调用“无搜索结果”?例如,我想在我的select2文本框中添加一个事件监听器,但只有在没有找到结果的情况下?

这是我的js代码:

$("#textBoxId").select2({
    placeholder: 'Select a product',
    formatResult: productFormatResult,
    formatSelection: productFormatSelection,
    dropdownClass: 'bigdrop',
    escapeMarkup: function(m) { return m; },
    formatNoMatches: function( term ) {
    return "<li class='select2-no-results'>"+"No results found.<button class='btn btn-success pull-right btn-xs' onClick='modal()'>Add New Item</button></li>";
    },
    minimumInputLength:1,
    ajax: {
        url: '/api/productSearch',
        dataType: 'json',
        data: function(term, page) {
            return {
                q: term
            };  
        },  
        results: function(data, page) {
            return {results:data};
        }   
    }   
});

我尝试添加:

formatNoMatches: function( term ) {
      $('.select2-input').on('keyup', function(e) {
         if(e.keyCode === 13) 
           {
            $("#modalAdd").modal();
           }
      });
    return "<li class='select2-no-results'>"+"No results found.<button class='btn btn-success pull-right btn-xs' onClick='modal()'>Add New Item</button></li>";
    },

它有效,当我按下“输入键”时,模态显示,但即​​使我不搜索任何东西,当我按下回车键时,模态仍显示。

我想要达到的是,当“找不到结果”时,我可以通过按“回车”键而不是单击链接打开我的模态表单,以便打开模态...谢谢非常感谢你的帮助!祝你有美好的一天!

2 个答案:

答案 0 :(得分:1)

通过搜索一些替代方法,我找到了这个代码,我只是解锁了keyup监听器事件,一旦在这里调用模态我的代码:

    formatNoMatches: function( term ) {
      var flag = 1;
      $('.select2-input').on('keyup', function(e) {
         if(e.keyCode === 13) 
           {
            $("#modalAdd").modal();
            $(".select2-input").unbind( "keyup" );
           }
      });
    return "<li class='select2-no-results'>"+"No results found.<button class='btn btn-success pull-right btn-xs' onClick='modal()'>Add New Item</button></li>";
    }

答案 1 :(得分:0)

result: function(data, page)替换为processResults: function(data, page) 它的工作