美好的一天,

如何在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>";
    },


并且它起作用了,当我按“输入键”时模态显示,但是即使我不搜索任何内容,当我按Enter键时,模态仍然显示。

我想获得的是,当“未找到结果”时,我可以通过按“ enter”键而不是单击链接来打开模态表单,这样模态将被打开。。非常感谢帮助!祝你今天愉快!

最佳答案

通过搜索一些我使用此代码的替代方法,一旦在此模态在我的代码中被调用,我便取消绑定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>";
    }

关于javascript - 如何在select2上调用“如果没有搜索结果”?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21559000/

10-11 11:19
查看更多