Select2“TypeError:a未定义”错误
Posted
技术标签:
【中文标题】Select2“TypeError:a未定义”错误【英文标题】:Select2 "TypeError: a is undefined" error 【发布时间】: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
所拥有的
jsfiddle.net/arunpjohny/e39ftb64/1
【参考方案1】:
Select2 期望 [text="john doe",id="1",text="jane doe",id="2"]
所以您需要将'nombre': item.nombre
更改为'text': item.nombre
它应该如下所示:
myResults.push(
'id': item.id,
'text': item.nombre
);
【讨论】:
@ReynierPMitem.nombre
未定义我认为你需要item.descripcion
【参考方案2】:
可能是您的数据格式错误: 数据 类型:PlainObject 或字符串或数组 要发送到服务器的数据。如果还不是字符串,则将其转换为查询字符串。它附加到 GET 请求的 url。请参阅 processData 选项以防止此自动处理。对象必须是键/值对。如果 value 是一个 Array,jQuery 会根据传统设置的 value 序列化多个具有相同 key 的值(如下所述)。
见jquery for ajax
【讨论】:
然后呢?我没有关注你或认为这对你没有帮助,抱歉 在断点处使用调试: var myResults = [];打印堆栈值的结果。以上是关于Select2“TypeError:a未定义”错误的主要内容,如果未能解决你的问题,请参考以下文章
JCrop 与 React 使用自定义脚本加载 jquery 对象:TypeError:a 未定义
Rails 5 和 select2 错误,select2 不是函数
MarkMatch 上的 Select2 toUpperCase 错误
无法克隆 <select> 并出现“.select2 不是函数”错误
Rails 6.1.3,webpacler,select2,出现错误:readyException.js:6 Uncaught TypeError: $(...).select2 is not a f