0

実行時にラジオボタンを作成しました。その値、ID、名前は1、2、3などと同じですが、このように値を交換したいのですが、

http://jsfiddle.net/u8ySM/

ラジオボタンは次のように表示されます。

ここに画像の説明を入力

ページの読み込み後はこのようになり、ラジオを変更すると、前のラジオでチェックされたラジオが変更されます

私はそれを試しています私のコードはここにあります、

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」変数で合計ラジオボタンを取得し、チェックされたラジオを配列に入れますが、チェックされたラジオを交換できません???

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

編集:

htmlコードは次のようになります。

<input type='radio' onclick='test(this.id);' name='Accounts' value='1' id=1 checked='checked'>1

<input type='radio' onclick='test(this.id);' name='Accounts' value='2' id=2>2

<input type='radio' onclick='test(this.id);' name='Accounts' value='3' id=3>3
<input type='radio' onclick='test(this.id);' name='Accounts' value='4' id=4>4
<br/>
<input type='radio' onclick='test(this.id);' name='Analytical Question' value='1' id=1>1
<input type='radio' onclick='test(this.id);' name='Analytical Question' value='2' id=2 checked='checked'>2

<input type='radio' onclick='test(this.id);' name='Analytical Question' value='3' id=3>3

<input type='radio' onclick='test(this.id);' name='Analytical Question' value='4' id=4>4
<br/>
<input type='radio' onclick='test(this.id);' name='Behavior Questions' value='1' id=1>1
<input type='radio' onclick='test(this.id);' name='Behavior Questions' value='2' id=2>2
<input type='radio' onclick='test(this.id);' name='Behavior Questions' value='3' id=3 checked='checked'>3

<input type='radio' onclick='test(this.id);' name='Behavior Questions' value='4' id=4>4
<br/>
<input type='radio' onclick='test(this.id);' name='Technical Questions' value='1' id=1>1


<input type='radio' onclick='test(this.id);' name='Technical Questions' value='2' id=>2


<input type='radio' onclick='test(this.id);' name='Technical Questions' value='3' id=3>3


<input type='radio' onclick='test(this.id);' name='Technical Questions' value='4' id=4 checked='checked'>4

このラジオでチェックされた値を交換する方法は?

4

2 に答える 2

2

私がそれを正しく理解しているなら、あなたはやりたいと思っていました:例えば。行1の[2]をクリックすると、行2の[1]がオンになります。

動作するスクリプトを用意しました。http://jsfiddle.net/nb3j9/をご覧ください。

于 2012-09-21T07:24:06.987 に答える
1

このフィドルをチェック

コードは次のようになります

    $(function() {
    var arr = {
        'Accounts': '1',
        'Analytical_Question': '2',
        'Behavior_Questions': '3',
        'Technical_Questions': '4'
    }
    $('input:radio').on('click', function() {
        var grName = $(this).attr('name');
        var value = $(this).val();
        // Set the arr value here
        var currCheck = $('input[value=' + value + ']:checked');
        $.each(currCheck, function() {
            if ($(this).attr('name') != grName) {
                var temp = $(this).val();
                var teGrp = $(this).attr('name');
                var teVal = arr[grName];
                arr[teGrp] = teVal;
                arr[grName] = temp;
                $('input[name=' + teGrp + '][value=' + temp + ']').attr('checked', false);
                $('input[name=' + teGrp + '][value=' + teVal + ']').attr('checked', true);
            }
        });
    });
});​

あなたのマークアップフィドル -- Name 属性の間にスペースが含まれていないことを確認してください

于 2012-09-21T07:37:19.197 に答える