Uncaught TypeError: Cannot read property 'Länge' undefined AutoVervollständigen
Ich versuche, auto-vervollständigen mit der Beispiel
dafür bin ich mit code
<head>
<title>JSP Page</title>
<link rel="stylesheet" type="text/css" href="css/jquery-ui.css" />
<script src="js/jquery-1.9.1.js"></script>
<script src="js/jquery-ui.js"></script>
<script>
$(function() {
function log(message) {
$("<div>").text(message).prependTo("#log");
$("#log").scrollTop(0);
}
$("#productName").autocomplete({
source: function(request, response) {
alert('hiiiii');
$.ajax({
url: "ajaxProduct",
dataType: "json",
data: {
qry: $("#productName").val(),
maxRows: 5
},
success: function(data) {
alert('success');
alert(data.productList);
response($.map(data.productList, function(item) {
alert(data.productList);
console.log(item);
return {
label: item.productName,
value: item.productName,
id: item.productId
}
}));
},
error: function(data) {
alert(data.productList);
console.log(typeof data);
console.log(data);
alert('error');
}
});
},
minLength: 1,
select: function(event, ui) {
log(ui.item ?
"Selected: " + ui.item.label :
"Nothing selected, input was " + this.value);
$("#productId").val(ui.item.id)
},
open: function() {
$(this).removeClass("ui-corner-all").addClass("ui-corner-top");
},
close: function() {
$(this).removeClass("ui-corner-top").addClass("ui-corner-all");
}
});
});
</script>
</head>
<body>
Product Id <span id="productId"></span><br>
Product Name <input type="text" name="productName" id="productName"/>
</body>
Es zeigt alert('hii');
,alert('success');
, dann in der alert-box zeigt undefined
.
Auf Konsole.log zeigt
event.returnValue is deprecated. Please use the standard event.preventDefault() instead.
Uncaught TypeError: Cannot read property 'length' of undefined jquery-1.9.1.js:766
Denying load of chrome-extension://flhdcaebggmmpnnaljiajhihdfconkbj/jquery-2.0.2.min.map. Resources must be listed in the web_accessible_resources manifest key in order to be loaded by pages outside the extension. (index):1
Jquery:766 ist
arg is for internal usage only
map: function( elems, callback, arg ) {
var value,
i = 0,
length = elems.length,//766 line number
isArray = isArraylike( elems ),
ret = [];
Wie diese zu lösen.
- Was ist Ihre resultierende Datenformat? Ich meine, wenn Sie diese url
ajaxProduct
, was Sie bekommen? - console.log(data) an den Erfolg zu sehen, was Sie bekommen???????
- es enthält eine arraylist von Artikelnr und Artikelname
- Könnten Sie bitte zeigen Sie Ihre backend-code auf Ihre Frage auch; vor Allem die Rückkehr Teil
- Es zeigt nur Fehler, die wie bereits erwähnt in Frage
- zeigen Rückkehr Teil von backend? Benutzt du php?
- console.log(Daten) nach alert('Erfolg') zeigt
Object {productId: 0, productName: null}
- ok, siehe meine Antwort, und wir brauchen eine Konfiguration, die auf die Rückkehr Teil Ihrer backend-code, wenn Sie irgendwelche Fehler.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Weil Sie nicht immer
productList
imdata
versuchen Sie Ihrsuccess function
wie,Ihre
response data
sollte,Object {productId: 0, productName: null}
{"productList":{"productId": 0, "productName": null} }
siehe meine aktualisierte Antwort2.IN Ihrem ajaxProduct.php Sie sind Rückgabe eines json-kodiertes array.Stellen Sie sicher, es enthält den Schlüssel
productList
Haben Sie keine Feldnamen wie
productList
im backend. Verwenden Sie folgenden;