2011-01-30 35 views
5

Tôi đang xây dựng một tập lệnh tự động hoàn thành cho đầu vào văn bản. Để tránh nhiều cuộc gọi ajax không cần thiết, tôi muốn bắt đầu cuộc gọi ajax chỉ sau khi người dùng ngừng nhập văn bản trong 1 giây. Bằng cách đó tôi sẽ tiết kiệm một số cuộc gọi trên không cho mỗi phím nhấn. Làm thế nào tôi có thể đạt được điều này bằng cách sử dụng jQuery?Trì hoãn cuộc gọi ajax trên đầu vào khóa trong jQuery

Cảm ơn,

Joel

+0

hoặc để tham khảo, hoặc do đó bạn không phát minh lại bánh xe, plugin tự động hoàn thành của jqueryui tuyệt vời và có tính năng chính xác này (tùy chọn và khi sử dụng, bạn có thể đặt độ trễ) ... – davin

Trả lời

2

Bạn có thể thử một cái gì đó như thế này. Tôi chưa chơi ở trên. Chỉ cần sử dụng đồng bằng js.

var keyUpTime = 1000; // 1 sec 
var keyUpTimeout = null; 
$('input[type=text]').keyup(function(e) { 
    clearTimeout(keyUpTimeout); 
    keyUpTimeout = setTimeout(function() { sendAjax(); }, keyUpTime); 
}); 
function sendAjax() { 
    alert('Send it!'); 
} 
+4

Bạn đang gây ô nhiễm phạm vi toàn cầu với các sự kiện chính 'keyUpTime' và' keyUpTimeout' – ThiefMaster

+0

sẽ không kích hoạt nếu bạn nhấp chuột phải và chọn Dán trong menu ngữ cảnh. – Fred

2

Có một plugin jquery khác cho việc này. Nó hoạt động tốt cho tôi a link

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