$(document).ready(function() { $('#stackable_autocomplete_field').keyup(function() { var $elem = $(this); var time = (new Date()).getTime(); var $result = $('<div>', { id: time }).html('Requesting..').appendTo($elem.next()); $.ajax({ url: '/echo/js/', data: { js: '$(\'#' + time + '\').html(\'' + $elem.val() + '\');', delay: 2 }, type: 'GET' }); }); $('#non_stackable_autocomplete_field').keyup(function() { var $elem = $(this); var time = (new Date()).getTime(); var $result = $('<div>', { id: time }).html('Requesting..').appendTo($elem.next()); // abort existing previous request if ($elem.data('autocompleteAJAX')) { $elem.data('autocompleteAJAX').abort(); } $(this).data('autocompleteAJAX', $.ajax({ url: '/echo/js/', data: { js: '$(\'#' + time + '\').html(\'' + $elem.val() + '\');', delay: 2 }, type: 'GET', error: function(XMLHttpRequest, textStatus) { if (textStatus == 'abort') $result.html('Aborted'); } })); }); });
<input type="text" id="stackable_autocomplete_field"> <div></div> <input type="text" id="non_stackable_autocomplete_field"> <div></div>