美好的一天,
如何在 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”键即可打开我的模式表单,而不是单击链接,以便打开模式。谢谢非常感谢您的帮助!祝你有美好的一天!
最佳答案
通过搜索一些替代方案,我找到了这段代码,一旦在我的代码中调用模式,我就取消绑定(bind) 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 上调用 "if no search result"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21559000/