28


5

テキストボックスでキーが押されたときに関数が実行されるようにしたいので、このコードがあります。

$( "input [x]")。keypress(function(){DoX();})

これはうまく機能していますが、私の機能では、テキストボックスのテキスト値に基づいて何かをしたいです。

var textValue =( "input [x]")。val();

ここでの問題は、私のテキストボックスに 'He’と表示されていて 'l’と入力した場合、私はtextValueを 'Hel’にしたいのですが、前の値 'He’を返しているということです。おそらくその文字はまだテキストボックスに入力されていないからです。

ここに私の機能から「ヘル」を取得する方法はありますか?

ありがとう:)

4 Answer


55


keyupイベントを使ってみることができます。

$(selector).keyup(function(){var textValue = $(this).val(); DoX();});


27


他の理由でキーを押したままで動かなくなった場合(つまり、推奨されているキー設定に変更できない場合)、最後の文字を次のように入力します。

$( "input [x]")。keypress(function(e){var c = String.fromCharCode(e.which); // 1文字またはvarを処理します。var textValue = $( "input [x]")。val (); var fulltext = textValue c; //全文を処理する

;));


9


onkeyupを使うと、正しい値が表示されます。


0


遅滞なくsetTimeoutを使用してください。 キー入力イベントが完了した直後に実行されるので、正しい入力値が得られます。

$( "input [x]")。keypress(function(){setTimeout(DoX);});