Jquery UI AutoComplete On Key Up

hello-

I am using JqueryUI Auto Complete which works fine for simple things, however I need it to return values on every keystroke after the minimum entered. Right now, JqueryUI only returns the data from the first" minLength" entered. So what I need it do is:

Continue to hit my server with every key stroke after the minimum so the user continues to see the list change as they input text. Any help is appreciated.
<script>
	$(function() {
		var cache = {},
			lastXhr;
		$( "#addresses" ).autocomplete({
			minLength: 4,
			source: function( request, response ) {
				var term = request.term;
				if ( term in cache ) {
					response( cache[ term ] );
					return;
				}

				lastXhr = $.getJSON( "addresses.asp", request, function( data, status, xhr ) {
					cache[ term ] = data;
					if ( xhr === lastXhr ) {
						response( data );
					}
				});
			}
		});
	});

Open in new window

jfergyAsked:
Who is Participating?
 
VampireofdarknessCommented:
The minLength variable will make it so that text of 0, 1, 2 and 3 characters long in the text box are not sent to autocomplete (ie- 'dog'); However, if you had 'dog bones' the entire thing would be sent as it is above four characters long.

You should be able to verify this is happening by adding an
alert(term);

Open in new window

after
var term = request.term;

Open in new window


I will note as well that you are creating the variable term, but sending the 'request' variable to addresses.asp. I am assuming one is the string (term) and one is an object / array.

0
 
jfergyAuthor Commented:
I understand whats happening now, what I need is the ability for it to continue to send what someone types in after the minlength. Right now it sends the Term to the json page as the min length but does not continue as someone types.
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.