1
//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);
    }

});

该函数zipLookup执行 ajax 调用并填充字段。

以上适用于用户输入邮政编码的情况 - 但是,如果用户输入邮政编码然后粘贴(CTRL V)新的邮政编码值,则该函数不会再次触发。

4

1 回答 1

0

您可能会捕捉到 paste 事件:

$(document).on('change keyup paste', '#billZipCode', function(){
   // do something
});​​​​​​

onpastejquery 使用的回调参考: https ://developer.mozilla.org/en-US/docs/DOM/element.onpaste

请注意,如文档中所述,这在 IE8 上不起作用:您必须将paste事件直接附加到元素:

在 Internet Explorer 8 及更低版本中,粘贴和重置事件不会冒泡。此类事件不支持与委托一起使用,但可以在事件处理程序直接附加到生成事件的元素时使用。

旁注:

  • 使用“#billZipCode”而不是“input#billZipCode”
  • 使用on, not live(已弃用)
于 2012-08-28T15:00:05.347 回答