アプリ版:「スタンプのみでお礼する」機能のリリースについて

ボタンを押したら、ラジオボタンを選択するようにしたいと思っています。
なんとかチェックボックス、セレクトボックス(?)はうまくいったのですが、どうしてもラジオボタンだけがうまくいきません。どうすればよいでしょうか?

※document.forms[0].R1[0].checked = true;
のようにすると意図した通りに動作することはわかったのですが、項目が増えた時にミスの原因になりますので、できるだけ"a"や"b"とvalueを使いたいと思っています。

すみませんが、よろしくお願いします。

--
<html>

<head>
<SCRIPT language="JavaScript"><!--
function check() {
document.forms[0].C1.checked = true;
document.forms[0].S1.value = "3";
document.forms[0].R1.value = "a";
}
//--></SCRIPT>
<title></title>
</head>

<body>

<form>
<input type="checkbox" value="yes" name="C1"><br>
<select name="S1">
<option value="0">0</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
</select><br>
<input type="radio" name="R1" value="a"><input type="radio" name="R1" value="b"><br>
<input type="button" onclick="javascript:check()">
</form>
<br>

</body>

</html>

A 回答 (1件)

ラジオボタンのvalueを参照して、該当のボタンにチェックを入れたいのであれば、もうほんの少しだけ複雑なスクリプトを組む必要があると思います。


スクリプトを以下のようにしてみてはいかがでしょうか。

<SCRIPT language="JavaScript"><!--
function check() {
document.forms[0].C1.checked = true;
document.forms[0].S1.value = "3";
for (i=0; i<document.forms[0].R1.length; i++){
if (document.forms[0].R1[i].value=="a"){
document.forms[0].R1[i].checked = true;}
}
}
//--></SCRIPT>

上記のラジオボタンのチェック部分では、for文でラジオボタンの項目数だけループし、それぞれのラジオボタンのもっているvalue値を参照してそれが"a"と一致している場合にはそのラジオボタンをチェックするようにしています。

これで対処できるのではないでしょうか。
参考になれば幸いです。
    • good
    • 0
この回答へのお礼

返事が遅くなりすみません。ご回答ありがとうございます。

やはり、少し複雑なコードを書くしかないのですね。わかりました。どうもありがとうございます。

もし、もっと簡単な方法をご存知の方がいらっしゃいましたら、教えてください。
(それまでしばらく締め切らないでおきます)

お礼日時:2003/10/14 20:59

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