如何通过javascript或jquery点击单击选中的单选按钮?我的代码附上

时间:2012-09-21 06:15:56

标签: php javascript jquery radio-button

我在运行时创建了单选按钮,其值,id和名称相同,如1,2,3 ......依此类推,但我想像这样交换它的值,

http://jsfiddle.net/u8ySM/

单选按钮显示为,

enter image description here

页面加载后它会是这样的,当我更改无线电时,它会更改其前一个检查的无线电

我正在尝试我的代码就在这里,

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

现在如何交换这个收音机检查值?

2 个答案:

答案 0 :(得分:2)

如果我理解你想做的事: 例如。如果在第1行中单击“2”,则需要在第2行中选中“1”。

我为你准备了一份工作脚本, 看看:http://jsfiddle.net/nb3j9/

答案 1 :(得分:1)

选中此FIDDLE

代码看起来像这样

    $(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);
            }
        });
    });
});​

YOUR MARKUP FIDDLE - 确保Name属性之间没有空格