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

貼り付けイベントをキャッチできます:

$(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 以前では、貼り付けイベントとリセット イベントはバブリングしません。このようなイベントは委任での使用はサポートされていませんが、イベント ハンドラーがイベントを生成する要素に直接アタッチされている場合は使用できます。

補足:

  • 「input#billZipCode」ではなく「#billZipCode」を使用してください
  • use on、 not live(非推奨)
于 2012-08-28T15:00:05.347 に答える