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

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

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

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

Q&A

2回答

1629閲覧

javascriptによりhtmlタグにイベントを追加する方法

退会済みユーザー

退会済みユーザー

総合スコア0

JavaScript

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

0グッド

1クリップ

投稿2015/11/06 01:45

<input type="text" class="name"> に対し、ページのロード後に下記のchangeイベントを追加したいと思っています。 背景としては、WordPressプラグインによりinputが自動生成されるため、後からイベントを追加する必要がございます。

<input type="text" **onchange="test1();" **class="name">

addEventListenerかなとも思い色々試してみましたが、どうしても所望の動作をいたしません。

よろしければご教示いただければ幸いです。
何卒よろしくお願いいたします。

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

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

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

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

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

guest

回答2

0

イベント付与1つだけならonchangeで問題ないかと。
id付けられない場合はこんな感じで。

javascript

1<html> 2 <body> 3 <input type="text" id="trg" class="name"> 4 <script type="text/javascript"> 5 window.onload = function() { 6 var els = document.getElementsByTagName('input'); 7 var fn = function(e){ 8 var target = e.target || e.srcElement; 9 console.log(target.value); 10 }; 11 for (var i = 0; i < els.length; i++){ 12 if( els[i].addEventListener ){ 13 els[i].addEventListener( 'change', fn, false ); 14 } 15 else if( els[i].attachEvent ){ //IE 16 els[i].attachEvent( 'onchange', fn ); 17 } 18 else{ //DOM0 19 els[i].onclick = fn 20 } 21 } 22 }; 23 </script> 24 </body> 25</html>

2015/11/06 21:00 コード修正

投稿2015/11/06 02:55

編集2015/11/06 13:46
hirohiro

総合スコア2068

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

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

think49

2015/11/06 11:12

IE8- で this は期待通りに動作しなかったような。 レガシーコードを書くなら attachEvent と併用した方が良いと思います。
hirohiro

2015/11/06 12:05

ありがとうございます。 コード修正しておきました
think49

2015/11/06 13:28

event.target と this は等価ではありません(this === event.currentTarget ですが、attachEvent でこれを得る方法はありません)。 この場合は event.target で十分なので下記コードのように書けます。 var target = event.target || event.srcElement;
hirohiro

2015/11/06 13:48 編集

これは重ね重ねどうもありがとうございます。 投稿コードのほう修正しておきました。 IE8はまだもう少し対応対象になりえますし、結構大変ですね。
guest

0

ピュアなjsで書くならこんな感じでしょうか。

<html> <script language="javascript"> window.onload = function() { tx.onchange = function() {alert("変更されました");}; } </script> <input type="text" id="tx"></input> </html>

投稿2015/11/06 02:26

lilithchan

総合スコア249

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問