簡體   English   中英

Select2“ TypeError:a未定義”錯誤

[英]Select2 “TypeError: a is undefined” error

我有以下代碼用於從輸入字段中創建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控制台上收到此錯誤:

TypeError:a未定義

我檢查了Response標頭,並得到了Content-Type application/json並且還檢查了Request標頭,因為我在服務器端使用了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"
      }
   ]
}

我的代碼中的錯誤在哪里?

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
 });

可能是您的數據格式錯誤:
數據類型:PlainObject或String或Array要發送到服務器的數據。 如果還不是字符串,則將其轉換為查詢字符串。 它被附加到GET請求的URL上。 請參閱processData選項以防止這種自動處理。 對象必須是鍵/值對。 如果value是一個Array,則jQuery會根據傳統設置(如下所述)的值,使用相同的鍵序列化多個值。

看到jQuery的ajax

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM