Javascript 动态显示默认选项时";“未找到任何结果”;在选择2 jquery插件中
我想使用Select2插件加载远程数据并自定义选择框。我遵循文档,它就像一个符咒。但当用户找不到匹配项时,会显示消息:“找不到结果。” 我的要求是在用户找不到匹配项时显示默认选项,而不是消息,类似于此Javascript 动态显示默认选项时";“未找到任何结果”;在选择2 jquery插件中,javascript,jquery,jquery-select2,select2,Javascript,Jquery,Jquery Select2,Select2,我想使用Select2插件加载远程数据并自定义选择框。我遵循文档,它就像一个符咒。但当用户找不到匹配项时,会显示消息:“找不到结果。” 我的要求是在用户找不到匹配项时显示默认选项,而不是消息,类似于此 函数formatRepo(repo){ if(回购加载)返回回购文本; var标记=“”+ '' + '' + ''+repo.full_name+''+ ''; if(回购说明){ 标记+=''+回购说明+''; } 标记+=''; 返回标记; } 功能选择(repo){ 返回repo.full
函数formatRepo(repo){
if(回购加载)返回回购文本;
var标记=“”+
'' +
'' +
''+repo.full_name+''+
'';
if(回购说明){
标记+=''+回购说明+'';
}
标记+='';
返回标记;
}
功能选择(repo){
返回repo.full|u name | repo.text;
}
$(文档).ready(函数(){
$(“.js数据示例ajax”)。选择2({
阿贾克斯:{
url:“https://api.github.com/search/repositories",
数据类型:“json”,
延误:250,
数据:函数(参数){
返回{
q:params.term,//搜索项
页码:params.page
};
},
processResults:函数(数据,页面){
//将结果解析为Select2所需的格式。
//因为我们使用的是自定义格式函数,所以不需要
//更改远程JSON数据
返回{
结果:数据项
};
},
缓存:真
},
escapeMarkup:function(markup){return markup;},//让自定义格式化程序工作
最小输入长度:1,
templateResult:formatRepo,//为简洁起见省略,请参阅此页的源代码
templateSelection:formatRepoSelection//略去为简洁起见,请参阅此页的源代码
});
});
我用select2插件制作了一个加载远程数据的插件。请有人告诉我如何做到这一点?您应该这样对待您在“processResults”函数中提到的情况():
函数formatRepo(repo){
if(回购加载)返回回购文本;
var标记=“”+
'' +
'' +
''+repo.full_name+''+
'';
if(回购说明){
标记+=''+回购说明+'';
}
标记+='';
返回标记;
}
功能选择(repo){
返回repo.full|u name | repo.text;
}
$(文档).ready(函数(){
$(“.js数据示例ajax”)。选择2({
阿贾克斯:{
url:“https://api.github.com/search/repositories",
数据类型:“json”,
延误:250,
数据:函数(参数){
返回{
q:params.term,//搜索项
页码:params.page
};
},
processResults:函数(数据,页面){
//将结果解析为Select2所需的格式。
//因为我们使用的是自定义格式函数,所以不需要
//更改远程JSON数据
如果(data.items.length>0){
console.log(数据项);
返回{
结果:数据项
};
}
else返回{results:[{'loading':false,'description':'others','name':'others','text':'others','full_name':'Some name'}]}
},
缓存:真
},
escapeMarkup:function(markup){return markup;},//让自定义格式化程序工作
最小输入长度:1,
templateResult:formatRepo,//为简洁起见省略,请参阅此页的源代码
templateSelection:formatRepoSelection//略去为简洁起见,请参阅此页的源代码
});
}); 代码>
选择一个值。。。。。。
其他
Others选项在没有结果时出现,但为什么不能选择?我需要让它为用户选择,以便我可以在后端获得价值。
function formatRepo (repo) {
if (repo.loading) return repo.text;
var markup = '<div class="clearfix">' +
'<div clas="col-sm-10">' +
'<div class="clearfix">' +
'<div class="col-sm-6"><b>' + repo.full_name + '</b></div>' +
'</div>';
if (repo.description) {
markup += '<div>' + repo.description + '</div>';
}
markup += '</div></div>';
return markup;
}
function formatRepoSelection (repo) {
return repo.full_name || repo.text;
}
$(document).ready(function(){
$(".js-data-example-ajax").select2({
ajax: {
url: "https://api.github.com/search/repositories",
dataType: 'json',
delay: 250,
data: function (params) {
return {
q: params.term, // search term
page: params.page
};
},
processResults: function (data, page) {
// parse the results into the format expected by Select2.
// since we are using custom formatting functions we do not need to
// alter the remote JSON data
return {
results: data.items
};
},
cache: true
},
escapeMarkup: function (markup) { return markup; }, // let our custom formatter work
minimumInputLength: 1,
templateResult: formatRepo, // omitted for brevity, see the source of this page
templateSelection: formatRepoSelection // omitted for brevity, see the source of this page
});
});