Tôi đang gặp phải rất nhiều sự cố khi tự động hoàn thành để hoạt động trên trang của mình. Khi tôi nhập 2 ký tự ("OW") vào đầu vào tìm kiếm của mình, tôi nhận được hình ảnh trình tải trước (xem bên dưới), nhưng nó không bao giờ biến mất và tôi không bao giờ nhận được popup tự động hoàn thành. Nhìn vào giao diện điều khiển trong Chrome sẽ hiển thị:JSON UI Tự động hoàn thành JSON cung cấp lỗi: Loại lỗi không bắt buộc: Không thể sử dụng toán tử 'in' để tìm kiếm '62' trong
Uncaught TypeError: Cannot use 'in' operator to search for '62' in [{"value":103,"label":"FLOWER"},{"value":105,"label":"YELLOW"}]
Đây là chuỗi thực tế đang được trả lại (xác nhận bằng cách bổ sung một cảnh báo (dữ liệu) trong khối thành công):
[{"kwrdID":103,"kwrdKeyWord":"FLOWER"},{"kwrdID":105,"kwrdKeyWord":"YELLOW"}]
Đây là chính mã cho tự động hoàn tất
$("#searchInput").autocomplete({
source: function (request, response) {
$.ajax({
url: '@Url.Action("GetKeywords", "Home")',
dataType: "json",
data: {
SearchTerm: request.term
},
success: function (data) {
response($.map(data.keywords, function (item) {
return {
label: item.kwrdKeyWord,
value: item.kwrdID
}
}));
}
});
},
minLength: 2
});
Và cuối cùng, đây là trình tải trước (chỉ trong trường hợp nó liên quan).
$(document).ajaxStart(function() {
var position = $('#divParent').position();
position.left += (($('#divParent').width()/2) - ($('#preloader').width()/2));
position.top += (($('#divParent').height()/2) - ($('#preloader').height()/2));
$('#preloader').css(position).show();
$('#preloader').show();
}).ajaxStop(function() {
$('#preloader').hide();
});
Mọi người có thể giúp giải thích những gì đang xảy ra ở đây không?
Tôi nghĩ đây là cuộc gọi 'JSON.parse'. –