2012-04-04 9 views
5

空の場合、私はjQueryの入力イベントは、入力が

<input id="myId" type="text" /> 

要素内のすべての変化に反応するjQueryのイベントハンドラを持って発生しません。 #myIdが空です(たとえば、入力ボックスに1文字しかないので、Backspaceでそれを削除します)。入力が空になった場合、イベントは発生しません。文字を入力すると、イベントが発生します。

これは既知の問題ですか?私は何か間違っているのですか?入力が空になったときにイベントを取得する方法はありますか?

更新

Backspaceキーは、少なくともIE9には、入力されたときにイベントがまったく発生しません。

+1

keyupを使用し、あなたの文字列は0文字に近づくと、悪い結果を生成する傾向がありますか?あなたは 'keyup'イベントを使用できませんか? – elclanrs

+0

oninputイベントは広く使われているようではありませんが、存在するようです:https://developer.mozilla.org/en/DOM/window.oninput – j08691

+1

FYI、 'input'イベントはIE6,7では機能しません、8。 – jfriend00

答えて

8

私が知る限り、「入力」は使用したいイベントではありません。 「入力」は「変更」に似ているので、それはイベントが発生することになっているときに代わりに

$("input#myId").bind('keyup', function (e) {  
    // Do Stuff 
}); 
+0

https://developer.mozilla.org/en/DOM/window.oninput – j08691

+0

ああ、とても面白いです。ありがとう – Kristian

+2

私はここで間違っているかもしれませんが、キーアップとは異なり、入力はマウスのカット&ペーストのように入力を検出するため、「使用したいイベント」とは言えません。私たちがここで持っているのは、FirefoxやIEは、バックスペースや削除が「入力」としてカウントされるべきかどうかについては不一致です。私は両方の側面を見ることができます...私の推測では、エリックJ.は、要素が定期的な変更イベントのようにフォーカスを失うまで待つことなく発射するオン・チェンジ・イベントを本当に望んでいるということです。私はその質問に対する答えが何であるか分からない。 – ctb

関連する問題