• ベストアンサー

ラジオボタンの値を関数へわたすには?

初心者です。 現在以下のような方法で関数へ値をわたしています。 <input type="button" value="検索" onclick="upLoad(this.form.com.value,this.form.time.value,this.form.day2.value)" name="saveposision"> しかし、ラジオボタンの値だけうまくわたりません。 ラジオボタンの値を関数へわたすにはどのようにしたらよいでしょうか? また、この値の渡し方は長々と表記しないといけないですが、なにか他に短く、セキュリティホールにならない方法はあるでしょうか?

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

  • ベストアンサー
  • venzou
  • ベストアンサー率71% (311/435)
回答No.3

FireFox2でのエラーメッセージ obj.form.rButton is not function 配列要素なので()ではなく[]が正しいと思います。 if(obj.form.rButton[0].checked){ alert(obj.form.rButton[0].value); } if(obj.form.rButton[1].checked){ alert(obj.form.rButton[1].value);

その他の回答 (3)

  • incho0922
  • ベストアンサー率41% (84/204)
回答No.4

No.2です。 配列についてはNo.3の方の書かれたとおりですね。 upLoad関数に引数を渡さないサンプルを作成してみました。参考までに。 <html> <body> <script> <!-- function upLoad(){ alert(document.frm.tBox.value); if(document.frm.rButton[0].checked){ alert(document.frm.rButton[0].value); } if(document.frm.rButton[1].checked){ alert(document.frm.rButton[1].value); } alert(document.frm.dList.value); } --> </script> <form name="frm"> <input type="text" name="tBox"><br> <input type="radio" name="rButton" value="ABC" checked>ABC<br> <input type="radio" name="rButton" value="DEF">DEF<br> <select name="dList"> <option value="GHI" selected>GHI</option> <option value="JKL">JKL</option> </select><br> <input type="button" value="検索" onclick="upLoad()" name="saveposision"> </form> </body> </html>

  • incho0922
  • ベストアンサー率41% (84/204)
回答No.2

No.1です。 No.1で書いたサンプルは、WindowsXP Professional SP2、IE6.0SP2の環境では特にエラーは発生していないのですが・・・ いまさらではありますが、どのような環境(OS、ブラウザなど)で、どのようなスクリプトを記述して、どのようなエラーが発生しているのかを補足して下さい。

  • incho0922
  • ベストアンサー率41% (84/204)
回答No.1

この場合upLoad関数に渡すのは this だけでよいです。 最低限の要素しか入れていませんが、こんなコードではどうでしょうか?参考までに。 <html> <body> <script> <!-- function upLoad(obj){ alert(obj.form.tBox.value); if(obj.form.rButton(0).checked){ alert(obj.form.rButton(0).value); } if(obj.form.rButton(1).checked){ alert(obj.form.rButton(1).value); } } --> </script> <form name="frm"> <input type="text" name="tBox"> <input type="radio" name="rButton" value="ABC"> <input type="radio" name="rButton" value="DEF"> <input type="button" value="検索" onclick="upLoad(this)" name="saveposision"> </form> </body> </html>

saak888
質問者

お礼

失礼しました。関数内での処理が誤っていたようです。テキスト・ドロップダウンはalertで確認したところ、通常に送信できていました。 しかし、以下の部分の(0)、(1)という箇所でエラーが発生します。なぜでしょうか? >if(obj.form.rButton(0).checked){ alert(obj.form.rButton(0).value); } if(obj.form.rButton(1).checked){ alert(obj.form.rButton(1).value); } }

saak888
質問者

補足

ご回答ありがとうございます。 試しに変更してみたところ、テキスト部分は[object HTML Element]、ドロップダウンリスト部分はundefined、ラジオボタン部分はundefinedとなっております。ということは値がわたってないということですよね?

関連するQ&A