8

keypressイベントで最終結果を得ることができるかどうか疑問に思っていましたか? 現在、ユーザーが texteara でテキスト編集を行った後keyupにアクティブ化されるため、 を使用していますが、Mootools ライブラリを使用して同様のことを行うメソッドを作成しました。

input.addEvent("keypress", function (input) {
    var previous_result = this.value;
    var end_result = this.value + input.key;
});

ただし、この方法は、バックスペースなどの特殊キーを処理する場合や、ユーザーがCTRL+ a&&を使用することを選択した場合に恐ろしいものにBackspaceなります。この場合、入力要素の値は「空の文字列」にはなりません。

イベントがトリガーされる前に、Google の検索エンジンが XMLHttpRequest を送信し、ページを変更するのを観察したので、興味があります。keyupさらに、彼らが使用する入力は、テキスト全体を削除するという私の問題をなんとか克服し、keypress.

4

1 に答える 1

10

これで動作します:

input.addEvent( "keypress", function ( input ) {    
    setTimeout(function () {
        input.value // returns the updated value
    }, 0 );    
});

ライブ デモ: http://jsfiddle.net/yQQ5P/ (Mootools を知らないので、組み込み API を使用します)

したがって、利回りとして機能するゼロタイムアウトを使用します。これにより、ブラウザーの UI スレッドは入力の値を更新する機会が与えられます。

于 2013-02-12T21:31:39.197 に答える