我有一个在输入的最大长度上触发的 ajax 调用。但是,如果用户继续输入字符(因为它们算作按键),它会继续触发。有什么办法可以防止在 5 个字符限制之后出现额外的 ajax 调用吗?
html
<input type="text" value="" id="billZipCode" name="billZipCode" class="smallInput coreAddrBill" maxlength="5">
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); }
});
如果您想继续运行该语句直到邮政编码有效,请将赋值移至第二个 if
语句内。
关于x 个字符后调用 ajax,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11801672/