0

フォームには、Radio、Select、Input などが含まれます。

var variable = document.getElementById('anyId').value;

入力要素では問題なく動作しますが、ラジオ ボタン要素では期待どおりに動作しません!

私の HTML ページ (ラジオ用) では、コードは次のようになります。

<input type="radio" id="radioValue" name="radio" value="2">Radio_1
<input type="radio" id="radioValue" name="radio" value="1">Radio_2

そしてスクリプトで

 var radio_value = document.getElementById('radioValue').value;

radio_valueは常に 2 に等しく、radio_1 と radio_2 のどちらを選択しても問題ありません。

4

3 に答える 3

1

使用することでgetElementsByName

var selectedradio;
var radios = document.getElementsByName("radio");

 for(var i = 0; i < radios.length; i++) {
 if(radios[i].checked == true) {
   alert(radios[i].value);
   selectedradio = radios[i].value;

 }
 }
于 2013-07-08T08:53:38.127 に答える
1

ID は一意である必要があります。したがって、コードを次のように変更する必要があります。

<input type="radio" id="radioValue1" name="radio" value="2">Radio_1
<input type="radio" id="radioValue2" name="radio" value="1">Radio_2

そして、次の方法でこれらの値を取得できます。

var radio_value1 = document.getElementById('radioValue1').value;
var radio_value2 = document.getElementById('radioValue2').value;
//or 
var radio_value=document.querySelector('input[name="radio"]:checked').value; 
// in this last case you don't need even to have id's in the buttons

そうしないと、同じ ID を持つ 2 つの値を読み込もうとすると、最初の 1 つだけが得られます。

于 2013-07-08T08:46:56.170 に答える
0

最新のほとんどのブラウザー用の純粋な JavaScript。(ie 9 でも動作します)

フォームが 1 つだけで、ラジオのグループが 1 つしかない場合は、querySelector を使用します。

それが新しい適切な方法です。

var radio_value=document.querySelector('input[type="radio"]:checked').value

複数のラジオ グループとフォームがある場合は、簡単に拡張することもできます。

var radio_value=document.querySelector('#YOURFORM input[name="radio"]:checked').value
于 2013-07-08T08:57:23.947 に答える