autocomplete ajax g.nodename未定义

时间:2012-05-21 13:27:46

标签: function jquery-autocomplete

我是新手,我遇到了ajax自动完成问题,我在Firebug中遇到此错误(在Firefox中):

  

g.nodeName未定义
  C = f.valHooks [g.type] || f.valHooks [g.nodeName.toLowerCase()];
  jquery .... min.js(linha 977)

并在Chrome中:

  

Uncaught TypeError:无法调用未定义的方法'toLowerCase'jquery-1.7.2.min.js:977
  f.fn.extend.val jquery-1.7.2.min.js:977
  $ .autocomplete.source novo:77
  a.widget._search jquery-ui-1.8.18.custom.min.js:127
  a.widget.search jquery-ui-1.8.18.custom.min.js:127
  (匿名函数)

有人可以帮助我,我正在使用jQuery 1.7.2分钟完成,我按照本教程http://www.jensbits.com/2011/08/24/using-jquery-autocomplete-when-remote-source-json-does-not-contain-label-or-value-fields/

我的json源代码返回上面的代码:

[{"id":"1","campo":"[1] Empresa Tal"},{"id":"2","campo":"[2] Outra Empresa Tal"},{"id":"3","campo":"[3] Mais Outra Empresa"}] 

我的javascript函数:

 $('#accadempresa').autocomplete({
        source: function(request, response) {
            $.ajax({
                url: '/ajax.php?action=available&orm=cadempresa&campo=razsoc&valor=' + $(this).val(),
                dataType: "json",
                data: {term: request.term},
                success: function(data) {
                    response($.map(data, function(item) {
                        return {
                            id: item.id,
                            campo: item.campo
                        };
                    }));
                }
            });
        },
        minLength: 2,
        select: function(event, ui) {
            alert('ae');
            //$('#state_id').val(ui.item.id);
            //$('#abbrev').val(ui.item.abbrev);
        }

    });

1 个答案:

答案 0 :(得分:8)

Hello Sir我认为您收到此错误是因为您正在使用$(this).val(); 用你的id $(你的元素id).val()。

替换那个代码
$('#accadempresa').autocomplete({
        source: function(request, response) {
            $.ajax({
                url: '/ajax.php?action=available&orm=cadempresa&campo=razsoc&valor=' + $(elementid).val(),
                dataType: "json",
                data: {term: request.term},
                success: function(data) {
                    response($.map(data, function(item) {
                        return {
                            id: item.id,
                            campo: item.campo
                        };
                    }));
                }
            });
        },
        minLength: 2,
        select: function(event, ui) {
            alert('ae');
            //$('#state_id').val(ui.item.id);
            //$('#abbrev').val(ui.item.abbrev);
        }

    });