- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:入力した文字をalertで表示するスクリプトを作っています。)
入力した文字をalertで表示するスクリプトを作っています
このQ&Aのポイント
- 入力した文字をalertで表示するスクリプトを作っています。以下、IEとOperaでは動作しますが、FirefoxとGoogle Chromeでは動作しません。
- 書き方が悪いのでしょうか?
- テストボタンをクリックすると、入力した文字がalertで表示されます。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
書き方が悪い、といえば悪いです。 nameよりidを使ってdocument.getElementById("input1").valueとかを推奨します。 で、なぜ動作しないかですが、 たしかFirefoxのalert()は引数なしを認めていないはずなんですよね。 #1様のように書くならいいんですが、質問者様の記述だと Firefoxでは値を取ってくれません。 IEやオペラは頑張ってとってるようですが・・・ で、そうなるとinput1.valueの中身はundefinedとなるので 空扱いをされてアラート関数が呼び出されない。 たしかそういう解釈だったと思います。
その他の回答 (2)
- yambejp
- ベストアンサー率51% (3827/7415)
回答No.3
#2さんも指摘の通りnameはユニークを保証されていませんので取り扱いには 注意が必要です トラディショナルなやりかたとしてはこんな感じもあります。 inputはformの子要素として処理した方がやりやすいでしょう。 <script> function test(obj,nam){ alert(obj.form.elements[nam].value); } </script> <form> <p> <input type="text" name="input1"> <input type="button" value="テスト" onClick="test(this,'input1')"> </p> </form>
- nda23
- ベストアンサー率54% (777/1415)
回答No.1
alert(document.getElementsByName("input1")[0].value);
お礼
皆様、まとめてのお礼で失礼します。 皆様の回答で、Firefoxでも動作するようになりました。 根本的に、JavaScriptから各要素を指定する方法が分かっていませんでした。 nameもIDも同じ意味だと思い込んでいました。 nameの場合は配列で指定するなど、勉強になります。ありがとうございました。