• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:入力した文字をalertで表示するスクリプトを作っています。)

入力した文字をalertで表示するスクリプトを作っています

このQ&Aのポイント
  • 入力した文字をalertで表示するスクリプトを作っています。以下、IEとOperaでは動作しますが、FirefoxとGoogle Chromeでは動作しません。
  • 書き方が悪いのでしょうか?
  • テストボタンをクリックすると、入力した文字がalertで表示されます。

質問者が選んだベストアンサー

  • ベストアンサー
  • yuki4499
  • ベストアンサー率62% (10/16)
回答No.2

書き方が悪い、といえば悪いです。 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);

ps5550
質問者

お礼

皆様、まとめてのお礼で失礼します。 皆様の回答で、Firefoxでも動作するようになりました。 根本的に、JavaScriptから各要素を指定する方法が分かっていませんでした。 nameもIDも同じ意味だと思い込んでいました。 nameの場合は配列で指定するなど、勉強になります。ありがとうございました。