2010-06-28 28 views
23

jQuery autocomplete Plugin gửi yêu cầu như thế nàycách thay đổi khóa truy vấn mặc định của jQuery autocomplete plugin? (Hạn mà tôi muốn)

mysite.com/suggestion?term=Sadegh 

là có cách nào để thay đổi quan trọng querystring hạn khác? tôi không thể tìm thấy tùy chọn cung cấp này đối với tôi;)

+1

Plugin tự động hoàn thành nào? – SLaks

+0

Tôi xin lỗi jQuery UI Autocomplete – Sadegh

+0

Xin lỗi vì câu trả lời của tôi, tôi hiểu nhầm câu hỏi. – CuSS

Trả lời

15

Tôi giả sử bạn đang sử dụng jQuery UI AutoComplete

Bạn cần cung cấp một callback như nguồn, như thế này:

$(...).autocomplete({ 
    source: function(term, callback) { 
     $.getJSON("url", { foo: term }, callback); 
    } 
}); 
+0

và thứ hai quetion: làm thế nào tôi có thể áp dụng hiệu ứng như phai vào danh sách các đề xuất? – Sadegh

+0

khi hiển thị hoặc ẩn – Sadegh

+0

Xử lý sự kiện 'mở' và' đóng'. – SLaks

57

Trên đây không chính xác cho bản phát hành hiện tại (1.8.6). Bạn không chắc chắn nếu nó bao giờ là ...

$(...).autocomplete({ 
    source: function(request, response) { 
    $.getJSON("url", { foo: request.term }, response); 
    } 
}); 

foo: là mới tên chính param ..

+4

Đúng .. giải pháp được chấp nhận ở trên cung cấp url không đúng định dạng. Cái này hoạt động tốt! –

+0

Trong một ứng dụng ASP.NET MVC nơi URL tìm kiếm là: 'server/suggest/{keyword}' Tôi đã sử dụng hàm '$ .getJSON ("/suggest/"+ request.term, {}, response);' và nó làm việc – Amr

+0

NÀY NÊN ĐƯỢC CHẤP NHẬN ĐÁP ỨNG và vâng xin lỗi vì capslock;) – GedankenNebel

1

Thật sự tôi đào lên mã mà các plugin sử dụng. Thích nghi với nó để thay đổi thuật ngữ sẽ là một cái gì đó như thế này:

$('#form').autocomplete({ 
    source: (function() { 
     var xhr; 
     return function(request, response) { 
      if (xhr) { 
       xhr.abort(); 
      } 
      xhr = $.ajax({ 
       url: 'mysite.com/suggestion', 
       data: { 
        foo: request.term 
       }, 
       dataType: 'json', 
       success: function(data) { 
        response(data); 
       }, 
       error: function() { 
        response([]); 
       } 
      }); 
     } 
    })() 
}); 

Tôi sẽ nói điều này có 2 ưu điểm:

  1. Abort đề nghị.Nhấn
  2. Gọi phản ứng với một tập rỗng trong trường hợp lỗi , có vẻ lịch sự hơn với tôi
Các vấn đề liên quan