dポイントプレゼントキャンペーン実施中!

初心者です。
現在以下のような方法で関数へ値をわたしています。

<input type="button" value="検索" onclick="upLoad(this.form.com.value,this.form.time.value,this.form.day2.value)" name="saveposision">

しかし、ラジオボタンの値だけうまくわたりません。
ラジオボタンの値を関数へわたすにはどのようにしたらよいでしょうか?
また、この値の渡し方は長々と表記しないといけないですが、なにか他に短く、セキュリティホールにならない方法はあるでしょうか?

A 回答 (4件)

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);
    • good
    • 0

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>
    • good
    • 0

No.1です。



No.1で書いたサンプルは、WindowsXP Professional SP2、IE6.0SP2の環境では特にエラーは発生していないのですが・・・

いまさらではありますが、どのような環境(OS、ブラウザなど)で、どのようなスクリプトを記述して、どのようなエラーが発生しているのかを補足して下さい。
    • good
    • 0

この場合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>

この回答への補足

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

補足日時:2007/01/11 06:18
    • good
    • 0
この回答へのお礼

失礼しました。関数内での処理が誤っていたようです。テキスト・ドロップダウンは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);
}
}

お礼日時:2007/01/11 07:52

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!