我是新手,我遇到了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);
}
});
答案 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);
}
});