「一気に最後まで読んだ」本、教えて下さい!

フォームの入力内容をチェックするJAVASCRIPTの関数を作成していますが、ラジオボタンのValueを取得することができません。
引数指定の関数を作成して汎用的に使用したいと考えているのですが、引数を渡すと値を返してくれません。
引数の渡し方がおかしいのでしょうか?

function getRadioValue(str){ // 値を取得する関数
var check, num, value="none";
num=document.form1.str.length;
for (i=0;i<num;i++) {
check=document.form1.str[i].checked;
if (check) value=document.form1.str[i].value;
}
return value;
}

function check(){ // 入力内容をチェックする

if (getRadioValue("タイプ") == "A"){ hogehoge }
:
:

}

A 回答 (1件)

document.form1.str


は、strという名前のフォームエレメントがあるという指定になってますよね?
そこが、×なところです。

function getRadioValue(str){ // 値を取得する関数
var check, num, value="none";
var el=document.form1.elements[str];
num=el.length; //num=document.form1.str.length;
for (i=0;i<num;i++) {
check=el[i].checked;
if (check) value=el[i].value;
}
return value;
}
の様に変更してみて下さい。

あと蛇足ですが、ラジオボタンとかにつける名前は、日本語文字列より英数字の方がいいかもしれません。
    • good
    • 0
この回答へのお礼

できました!!
やっとスッキリしたソースになりました。ありがとうございます。

>strという名前のフォームエレメントがあるという指定になってますよね?そこが、×なところです。
そうだったんですね。もう少し勉強します。

ラジオボタンとかにつける名前についてもえらーメッセージを出力する際に便利だったので日本語をつけていましたが、文字コード等で問題になるのでしょうか?この辺りもまだまだ勉強が必要ですね。
とにかくどうもありがとうございました。

お礼日時:2005/05/02 19:25

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