var radios = document.getElementsByName("radios");「getElementsByName」というのは、引数に指定した名前のコントロールに対応するDOMオブジェクトを配列で返すメソッドです。IDと異なり、name属性は同じ名前のものが複数存在する場合があるため、値は配列となるのです。onclick="doAction(this);"引数にthisを渡すことで、イベントが発生したオブジェクトをdoActionに渡すことができます。後は、引数で渡されたオブジェクトのvalueを取り出して処理するだけです。実に単純ですね!
※リストが表示されない場合
AddBlockなどの広告ブロックツールがONになっているとリストなどが表示されない場合があります。これらのツールをOFFにしてみてください。
※nameで取り出し総当たりで調べるやり方
<html>
<head>
<script type="text/javascript">
<!--
function doAction(){
var radios = document.getElementsByName("radios");
for(var i = 0;i < radios.length;i++){
var radio = radios[i];
if (radio.checked){
var val =radio.value;
var message = document.getElementById("message");
message.innerHTML = "あなたは、" + val + "ですね。";
}
}
}
//-->
</script>
</head>
<body>
<H1>TEST.</H1>
<div id="message">性別を選択:</div>
<form onsubmit="return false;">
<input type="radio" id="r1" name="radios"
onclick="doAction();" value="男">
<label for="r1">男です。</label><br>
<input type="radio" id="r2" name="radios"
onclick="doAction();" value="女">
<label for="r2">女です。</label><br>
<input type="radio" id="r3" name="radios"
onclick="doAction();" value="両性具有">
<label for="r3">両方です。</label>
</form>
</body>
</html>
※引数を使ったやり方
<html>
<head>
<script type="text/javascript">
<!--
function doAction(obj){
var val = obj.value;
var message = document.getElementById("message");
message.innerHTML = "あなたは、" + val + "ですね。";
}
//-->
</script>
</head>
<body>
<H1>TEST.</H1>
<div id="message">性別を選択:</div>
<form onsubmit="return false;">
<input type="radio" id="r1" name="radios"
onclick="doAction(this);" value="男">
<label for="r1">男です。</label><br>
<input type="radio" id="r2" name="radios"
onclick="doAction(this);" value="女">
<label for="r2">女です。</label><br>
<input type="radio" id="r3" name="radios"
onclick="doAction(this);" value="両性具有">
<label for="r3">両方です。</label>
</form>
</body>
</html>
| << 前へ | 次へ >> |