質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

1回答

1422閲覧

JavaScriptのonChangeでalertを出すと次にフォーカスを当てたオブジェクトのonChangeが動作しない

lordes

総合スコア10

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

1グッド

1クリップ

投稿2021/11/29 02:21

JavaScriptのonChangeでalertを出すと次のオブジェクトのonChangeが動かない、と言う話が出てきて、簡易的に下記コードを試してみました。

html

1<html> 2 <body> 3 <form> 4 <input id="tt1" type="text" value="0" onchange="alert('A');"> 5 <input id="tt2" type="text" value="0" onchange="alert('B');"> 6 <input id="tt3" type="text" value="1"> 7 </form> 8 </body> 9</html>

簡易的に試しのために書いたので、w3cに準拠していないのはご容赦ください。
ここでtt1に値を入力してtt2にフォーカスを移すとalertとして「A」が出てくるのですが、その状態でtt2に値を入れてtt3にフォーカスを移しても出てきてほしいalert「B」が出てきません。
これがtt1→tt3→tt2→tt1であればそれぞれのalertが出てきます。

この現象がIE11では発生せず(tt1→tt2→tt3であってもそれぞれのalert出現)、Edge、FireFoxで現象が発生していると言う状態です。

解消方法があればご教授いただければと思います。

Lhankor_Mhy👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

onchangeでalertを出す必要があるかまず検討すべきですが
現象自体はsetTimeoutなど噛ませば回避できそうですね
(検証は不十分ですがテストした範囲ではFirefox/Edgeではいけてる感じです)

HTML

1<form> 2<input id="tt1" type="text" value="0" onchange="setTimeout(function(){alert('A')},0);"> 3<input id="tt2" type="text" value="0" onchange="setTimeout(function(){alert('B')},0);"> 4<input id="tt3" type="text" value="1"> 5</form> 6

投稿2021/11/29 02:37

yambejp

総合スコア114850

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

lordes

2021/11/29 04:15

ありがとうございます。 onchangeをやりかえるための期間と工数が確保出来ない状態でどうにかならないか、と思案していたところでした。 setTimeoutで挙動として出てくるのを確認出来ました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問