x 个字符后调用 ajax

标签 ajax jquery

我有一个在输入的最大长度上触发的 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/

相关文章:

javascript - 使用 Codeigniter 通过 CSS 按钮颜色更改来更新 AJAX 数据库

javascript - 使用 Javascript AJAX(不是 jQuery)提交嵌入式 Mailchimp 表单

javascript - 如何从循环输出中删除字符串 'undefined'?

php - 对特定元素发出 ajax 请求的最有效方法

Jquery 将值传递给 Controller ​​(codeigniter)

c# - asp.net 文本 onkeyup 事件

jQuery 验证 ResetForm 不起作用添加到 Onclick 复选框

javascript - HTML,CSS,JQuery 网页正文垂直拉伸(stretch)过多

jquery - 如何使用 Django、Ajax、jQuery 提交表单而不刷新页面?

javascript - 动态添加的按钮不起作用