1

基本を正しく理解しようとしている DOM/javascript の初心者です。ラジオボタンをクリックしたときの動作を観察しようとしています。これが私のコードです。

HTML

    <script src="tmp.js"></script>
    <input type="radio" id="inp1" name="same" onclick="show();"/>
    <input type="radio" id="inp2" name="same" onclick="show();"/>

JS (tmp.js)

   function show() {
       alert(document.getElementById("inp1").value + " " + document.getElementById("inp2").value);
   }

私を混乱させるのは、警告ボックスを実行すると、ボタンのいずれかをクリックすると「オン」と表示されることです。「オン オフ」または「オフ オン」ではないでしょうか。

4

4 に答える 4

3

いいえ、そうすべきではありません。値は、属性で指定したものです (ラジオ ボタンを指定しなかった場合はvalue、デフォルトで に設定されます)。'on'

チェックされたラジオ ボタンのみが成功してサーバーに送信されるため、値を変更する必要はありません (フォームの送信時にデータが含まれないだけです)。

チェックされたステータスはcheckedプロパティに保存され、JavaScript からそれを使用して、現在チェックされているラジオ ボタンを特定できます。

于 2013-08-08T11:55:54.340 に答える
1

あなたが取得したいのはcheckedプロパティのようです、見てください:

   function show() {
       alert( document.getElementById("inp1").checked + " " + 
              document.getElementById("inp2").checked);
   }

作業例: http://jsfiddle.net/w7vGL/

于 2013-08-08T11:55:43.100 に答える
0

チェックされたプロパティを使用する必要があります。値は、チェックされたときに内部にあるもののみを決定します。

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>test</title>
<script type="text/javascript">
    function show() {
        alert(document.getElementById("inp1").checked + " " + document.getElementById("inp2").checked);
    }
</script>
</head>
<body>
<input type="radio" id="inp1" name="same" onclick="show();"/>
<input type="radio" id="inp2" name="same" onclick="show();"/>
</body>
</html>
于 2013-08-08T11:58:35.920 に答える
0

代わりに使用checkedしますが、ブール値が返されることに注意してください。したがって、次のコードで必要なことが行われます。

function show() {
   alert(document.getElementById("inp1").checked ? 'on' : 'off'
 + " " + document.getElementById("inp2").checked ? 'on' : 'off'
   );
}
于 2013-08-08T12:02:13.613 に答える