通过Javascript中的变量按名称访问PHP生成的radiobuttons

时间:2012-02-16 16:03:36

标签: php javascript html

我用PHP创建了不同数量的radiobutton行,并给它们命名为1,2,3等。 所以现在我的HTML文件中有这样的东西:

<input type="radio" name="0" value="on" checked="">
<input type="radio" name="0" value="off" >
<input type="radio" name="0" value="solo" >
<input type="radio" name="1" value="on" checked="">
<input type="radio" name="1" value="off" >
<input type="radio" name="1" value="solo" >
<input type="radio" name="2" value="on" checked="">

现在我想用Javascript检查所有radiobutton的状态(别担心,我知道无线电行的数量):

for(var i = 0; i < amountOfRadioRows; i++) {
    for( var j = 0; j < 3; j++) {
        if(document.formName.i[j].checked) {
            alert(i+" "+j+" is checked!");
        }
    }
}

但这是我的问题:如何使用变量访问各个单选按钮?

附加信息:最终,我的页面应该从CSV文件中加载一些值(完成),为每个位置显示3个单选按钮(完成),并计算和显示这些数字的平均值,具体取决于用户选择的选项。我对此有任何意见感到高兴:)

5 个答案:

答案 0 :(得分:2)

表单输入中的名称适用于将表单发送到服务器时,但是当您在客户端使用javascript时,最好使用ID ..

所以给每个收音机一个不同的id,让我们说:

<input type="radio" name="0" id="r1" value="on" checked="">
<input type="radio" name="0" id="r2" value="off" >
<input type="radio" name="0" id="r3" value="solo" >
<input type="radio" name="1" id="r4" value="on" checked="">
<input type="radio" name="1" id="r5" value="off" >
<input type="radio" name="1" id="r6" value="solo" >
<input type="radio" name="2" id="r7" value="on" checked="">

然后得到你需要的那个:

document.getElementById("r1")

答案 1 :(得分:1)

您可以使用document.getElementsByTagName()获取所有<input>元素,然后对其进行过滤以排除那些不属于“radio”类型的元素。 getElementsByTagName() API也适用于容器元素(例如<form>),因此您可以根据需要更准确地定位单选按钮。

返回值是一个NodeList(或HTMLCollection,具体取决于浏览器),您可以将其视为一个Array实例。

答案 2 :(得分:1)

您可以在radiobuttons上添加ID(生成时),然后生成javascript以通过ID获取它们并将它们放入变量中。

<input type="radio" name="0" value="on" checked="" id="radio1">

// in javascript
var radio1 = document.getElementById("radio1");

答案 3 :(得分:1)

试试document.formName.elements[i][j]。也许有必要进行类型转换:document.formName.elements[i+""][j+""]

但如果可能,请生成ID并使用document.getElementById()

答案 4 :(得分:1)

将特定ID分配给单选按钮,您可以从javacript调用它,或者您可以使用jQuery


    //en jquery:
    $('#radio1).click(function(){
     //do something
    });