2

私はここが初めてで、ajax オートコンプリートに問題があります。Firebug (Firefox の場合) で次のエラーが発生します。

g.nodeName は未定義
です c=f.valHooks[g.type]||f.valHooks[g.nodeName.toLowerCase()];
jquery....min.js (linha 977)

そしてChromeで:

Uncaught TypeError: Cannot call method 'toLowerCase' of undefined 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-min completeを使用しています. 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);
        }

    });
4

1 に答える 1

9

こんにちは、$(this).val(); を使用しているため、このエラーが発生していると思います。そのコードを id $(your element 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);
        }

    });
于 2012-10-11T06:34:48.030 に答える