2013-02-23 4 views
7

に変更されたときに発生しません。発火しない。 どのように私はonchangeイベントを発射できますか?Javascriptを:</p> <pre><code><body> <input type="text" onkeyup="this.value = (new Date()).getSeconds()" onchange="alert(1)" /> </body> </code></pre> <p>私はキーが、のonchangeイベントを押すと、テキストボックスの値が変更された理由を知りdont't:のonchangeイベントは値が、私はこれだけでコードを持ってonkeyupのイベント

+0

exept ie –

+0

のためにoninputを使用してください: 'onkeyup =" this.value =(new Date())。getSeconds(); this.onchange(); " – Ian

+0

@Barmar、Ian:私は必要ありませんonkeyup関数のtextboxの値が変更された直後にonchangeイベントが発生します。私は、テキストボックスを離れるためにページをクリックすると、警告(1)の表示が必要です。 – hieund

答えて

1

onchangeは、変更を行った場合にフォーカスを離したときに起動します。この動作は、texttextarea入力タイプでのみ発生します。なぜなら、javascriptは入力が完了した時点を知らないからです。

なぜコードにチェックボックスがありますかはわかりませんが、誠実に、私はあなたに理由を伝えることができませんが、問題は入力の動的な値の変更です(変更はユーザーによって行われないと推測されますが、実際はわかりません)。あなたはそれが動作するonkeyup内部のコードを削除します。どんなものであれ、入力がフォーカスを失ったときに何らかのコードを実行するのであれば、代わりにonblurを使うことができます。その場合はより正確です。

+0

downvotesへの説明?私はそれを修正したい、そうでなければ私は間違っているだろう。 – martriay

+0

"なぜあなたはそれをしますか?" :キーアップ時に入力値を取得する必要があるので、有効でない場合は、それを修正して有効な値を返します。私は入力値を変更した後、私はonchangeイベントで何か他のことを行います。しかし、この単純なコードでは、フォーカスをテキストボックスに残すためにページをクリックしても、onchangeは起動しません。 (あなたはメモ帳にコピーして、チェックするためにhtmlとして保存することができます) – hieund

+0

私はなぜコードにチェックボックスがありますかはわかりません。誠実に、私はあなたに理由を伝えることができませんが、問題は入力の動的な値の変更です(変更はユーザーによって行われないと推測されますが、実際はわかりません)。それが動作する 'onkeyup'の中のコードを削除します。どんなものであれ、入力がフォーカスを失ったときにいくつかのコードを実行するだけなら、 'onblur'を代わりに使うことができます。その場合、より正確です。 – martriay

関連する問題

 関連する問題