选择错误-没有响应
Select2 errors - no response
我使用Select2在我的页面上提供动态选择功能。
下面是代码:-$("#Spon_Index").select2({
placeholder: "Type to select a sponsor",
minimumInputLength: 3,
multiple: false,
width: 400,
ajax: {
url: "../control/autocomplete_sponsor.aspx",
data: function(term) {
return term;
},
results: function(data, page) {
alert(results);
return {
results: data
}
},
formatResult: function(data) {
return data.text;
},
formatSelection: function(data) {
return data.id;
},
escapeMarkup: function(m) {
return m;
}
}
});
使用Fiddler,我可以看到我从autocomplete_sponsor获得正确的返回。aspx,例子:-
[{"id":"12","text":"Smiths"},{"id":"118","text":"Dr Smiths"}]
然而,控件没有发生任何事情。它要么挂在"搜索"上,要么什么都不挂……我已经检查了开发人员工具,有一个错误:-
Uncaught TypeError: Cannot read property 'slice' of undefined
我已经看了一些其他的解决方案,并尝试了各种重构我的代码,以得到这个工作,但我现在已经正式跑出的想法....
Select2似乎只是需要一个Javascript对象而不是JSON字符串。下面的代码是针对select2 v4.0.3的,因此results
被processResults
取代。
$("#Spon_Index").select2({
placeholder: "Type to select a sponsor",
minimumInputLength: 3,
multiple: false,
width: 400,
ajax: {
url: "../control/autocomplete_sponsor.aspx",
data: function(term) {
return term;
},
processResults: function(data, page) {
return { results: JSON.parse(data) };
},
}
});
对于Uncaught TypeError: Cannot read property 'slice' of undefined
错误,我删除了select2
中的placeholder
选项并将其设置为我的select
输入。所以代码是:
$("#Spon_Index").select2({
minimumInputLength: 3,
multiple: false,
width: 400,
ajax: {
url: "../control/autocomplete_sponsor.aspx",
dataType: 'json',
data: function(term) {
return term;
},
results: function(data) {
return {
results: data
}
}
}
});
我的情况下,当我得到这个错误,这是因为ajax被请求,即使我到了最后一页,通过纠正我的processResults
函数返回more: false
属性在最后一页解决:
return {
results: [some data from my API...],
pagination: {
more: false, // if all data has been returned
},
}
try delete
placeholder: "Type to select a sponsor",
我唯一及时的解决方案:https://github.com/select2/select2/issues/2950#issuecomment-70927064
…你没有返回一个带有results
键的对象
所以,如果你可以修改api(后端是你的),最简单的方法是像这样发送你的数据:
{
results: [
{
id: 5,
text: 'something'
},
{
...
}
]
}
…无论如何转换你的数据在js方面,基于此:https://select2.org/data-sources/ajax transforming-response-data
…然而@Kevin Dimey的答案与processResults
选项不适合我(没有其他的答案)
删除占位符为我解决了这个问题
- "所请求的名称已经作为不同类型的“”存在;HTTP 409响应错误
- 使用来自AngularJS的Web API JSON响应-错误:应为和数组,但得到了一个对象
- Json响应错误Json.parse:意外的数据结束错误
- AngularJs-$httpProvider.interceptors多重响应错误
- 使用ajax的ReCaptcha响应错误
- 节点服务器响应错误: process.nextTick(function(){throw err;});.
- 为什么我在使用 .then() 的 AngularJS 工厂中没有得到正确的响应/错误
- 在 MEAN Web 应用程序中,从 Express(服务器端)发送 HTTP 响应错误 403、500,未在 Angu
- E_UNKNOWN beforeCreate 和其他生命周期回调的响应错误
- 处理 HTTPS 文件响应错误
- 防止 Internet Explorer 中的“无响应”错误
- Backbone.sync 获取所有响应错误状态代码
- 如何防止“无响应”错误
- 收集后POST响应错误.插入NodeJS Mongo模块
- 处理来自多个来源的响应错误
- 在角度中,如果服务器响应{错误:'ok'},则$http去捕获
- Express BodyParser响应错误的请求,状态为400
- 发送ajax请求时获取响应错误
- Webdriver/FXDriver utils.js导致脚本无响应'错误
- worldweatheronline API响应错误