0

ラジオの名前とIDが1、2、3のように同じであるため、チェックされたラジオの「ID」と「名前」を取得しようとしています...など

私のコードはここにあります、

var selection=new Array(); 
 var allR = document.getElementsByTagName('input');
  var a=0;
  var b=0;
    for(var i=0; i<allR.length; i++){ 
        if(allR[i].type=='radio') { b++; }      
        if(allR[i].type=='radio' && allR[i].checked) { a++; } 
    }
var num=0;
alert(b);

for(var j=1;j<=b ;j++) {

  //for(var i=0; i<alr.length; i++){ 

    if(document.getElementsByName('j').checked) {
      selection[num]=j;
      num++;
      alert(j);
  //}
  }
}

このコードでは、変数 "b" はラジオ カウントの数であり、2 番目のループでは、チェックされたラジオを配列で取得して印刷しようとしていますが、ラジオ ボタンの合計を印刷するだけで、チェックされたラジオを印刷しませんか ???

あなたの提案を願っています

4

2 に答える 2

1

あなたは変わるべきです

if(document.getElementsByName('j').checked)

if(document.getElementsByName(j)[0].checked)

コントロールの名前は 1, 2 , 3. ではなく 'j' であり、j は for ループの頭文字であるため、一重引用符で囲む必要はありません。

document.getElementsByName がコレクションを返すためです。0 インデックスで要素をチェックする必要があります。

于 2012-09-21T04:51:38.570 に答える
0

ただのコメント。

最初の for ループ内のブロックは次のようになります。

for (var i=0; i<allR.length; i++){ 

    if (allR[i].type=='radio') {
       b++;  
       a += allR[i].checked; 
    }
}

しかし、そのような型変換に依存することを嫌う人がいます。

于 2012-09-21T05:17:34.780 に答える