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>
<< 前へ | 次へ >> |