JavaScript

今度は「入力欄の内容にしたがって別の箇所の表示を変更する」という、割と簡単そうなスクリプトを用意する事になった…が、思ったより難しい。


普通に考えると「onChange」にスクリプトを書いてやればいいと思うのだが…実はこれだと「テキスト入力欄の内容が変わった後、その欄からフォーカスが外れるまではChangeイベントが発行されない」という大問題がある。*1

仕方がないので別のイベントを探すと…次は「onKeyup」。テキスト入力欄で文字を打つたびに発生するわけだから、これでいけそうなものだが…「途中まで入力したところでブラウザのドロップダウンメニューを使うと、Keyupイベントが発生しない」という問題が。いや、たしかにKeyupはしていませんよね…でもMouseupも発生しないのは何故なんでしょう。*2


もう面倒くさいので、「onKeyupをセットした上で、タイマーイベントを使って定期的にチェックする」ということにしてしまいそうだ…

*1:というか、どうしてそんな仕様になっているんだ?

*2:Firefoxでテスト。