x字符后调用ajax

我有一个ajax调用触发输入的最大长度。 但是,如果用户继续输入字符,它将继续触发(因为它们被视为按键)。 在5个字符限制之后有没有办法阻止额外的ajax调用?

HTML

 

JavaScript的

 //show city/state on input maxlength $("input#billZipCode").live("keyup", function( event ){ if(this.value.length == this.getAttribute('maxlength')) { if ($(this).valid() == true ) { zipLookup(this, "USA"); } } }); 

在字段上设置.data属性:

 //show city/state on input maxlength $("input#billZipCode").live("keyup", function( event ){ if(this.value.length == this.getAttribute('maxlength')) { if(!$(this).data('triggered')) { // set the 'triggered' data attribute to true $(this).data('triggered',true); if ($(this).valid() == true ) { zipLookup(this, "USA"); } } } else { $(this).data('triggered',false); } }); 

如果要在zipcode有效之前继续运行,请在第二个if语句中移动赋值。

使用布尔变量来了解是否已经触发了一个调用(将其初始化为false,在进行调用之前断言它仍为false,并在进行调用时将其设置为true)。

试试这个:

 var ready = true; $("input#billZipCode").on("keyup", function( event ){ if(this.value.length == this.getAttribute('maxlength')) { if ($(this).valid() && ready) { zipLookup(this, "USA"); ready = false; } } });