【发布时间】:2014-12-17 11:44:58
【问题描述】:
我有这段代码用于从输入字段创建Select2 元素:
var codigo_arancelario = $codigo_arancelario.val();
$codigo_arancelario.select2({
placeholder: "Seleccione un estado",
ajax: {
dataType: 'json',
url: function () {
return Routing.generate('obtenerCodigoArancelario');
},
data: function (codigo_arancelario) {
return {
filtro: codigo_arancelario
}
},
results: function (data) {
var myResults = [];
$.each(data.entities, function (index, item) {
myResults.push({
'id': item.id,
'nombre': item.nombre
});
});
return {
results: myResults
};
}
},
formatNoResults: function () {
return "No se encontró el código";
},
formatAjaxError: function () {
return "No hay conexión con el servidor";
}
});
但每当我尝试使用它时,我都会在 Firebug 控制台上收到此错误:
类型错误:a 未定义
我检查了响应头,我得到了一个Content-Type application/json,我还检查了请求头,因为我在服务器端使用了 Symfony2,它发送了X-Requested-With XMLHttpRequest。 Symfony2 函数返回一个像这样的 JSON:
{
"valid":false,
"entities":[
{
"id":101,
"codigo":"4545",
"descripcion":null
},
{
"id":102,
"codigo":"45455",
"descripcion":"gfhgfhfghfgh"
},
{
"id":103,
"codigo":"45457",
"descripcion":"etert"
}
]
}
我的代码错误在哪里?
【问题讨论】:
-
@MohitArora 两者都没有数据。示例 JSON 是
data.entities所拥有的
标签: javascript jquery json jquery-select2