2011-12-25 37 views
5

Tôi đã làm việc mãi mãi về điều này và tìm kiếm tất cả các ví dụ khác và vẫn không thể tìm ra, cố gắng sử dụng tính năng tự động hoàn thành, lần đầu tiên cố gắng đặt tất cả cùng nhau. Dưới đây là JS của tôi:jQuery tự động hoàn thành dữ liệu JSON từ xa không trả về dữ liệu

$(document).ready(function() { 
$("#search-title").autocomplete({ 
    source: function (request, response) { 
     $.ajax({ 
      url: "/include/autocomplete", 
      dataType: "json", 
      data: { 
         term: request.term  
        }, 
      success: function (data) { 
       response($.map(data.stuff, function (item) { 
        return { 
         label: item.name, 
         value: item.name 
        }; 
       })); 
      } 
     }); 
    }, 
    minLength: 2, 
    focus: function (event, ui) { 
     $(event.target).val(ui.item.label); 
     return false; 
    }, 
    select: function (event, ui) { 
     $(event.target).val(ui.item.label); 
     window.location = ui.item.value; 
     return false; 
    } 
}); 
}); 

Kiểm tra ra các phản ứng trong Firebug, tôi nghĩ rằng tôi nhận được JSON định dạng đúng ở đây:

{"stuff":[ {"label" : "Dragon", "value" : "http://site.com/animal/firebreathers"}] } 

Nhưng đối với một số lý do nó không hooking lên. Sau khi tôi nhấn minLength, một hộp nhỏ, trống sẽ mở ra bên dưới trường tìm kiếm nhưng không có gì ở đó cả.

CẬP NHẬT: Khi tôi thêm "cảnh báo (mục)"; trong cuộc gọi trả lời, tôi nhận được một cửa sổ cho biết "Trang tại site.com cho biết: Object Object" - đây có phải là vấn đề không?

+0

Không phải là mục đối tượng? Bạn đã thử truy cập các tham số trong mục như item.value chưa? –

+0

Cảm ơn bạn !! cảm ơn bạn cuối cùng tôi đã có câu trả lời của tôi. –

Trả lời

2

Cuối cùng tôi đã tìm ra, nhờ vào lời nhận xét gợi ý đó trong câu hỏi của tôi.

Trong sự trở lại, mà tôi sao chép từ trang web UI Jquery, tôi đã có:

label: item.name, 
value: item.name 

Thay đổi đó để:

label: item.label, 
value: item.value 

Giải Quyết đấu tranh của tôi với jQuery. Tôi không biết đây có phải là thực hành tốt hay không, nhưng cuối cùng nó cũng hoạt động!

0

thử sử dụng jsonp thay vì json trong kiểu dữ liệu.

Các vấn đề liên quan