2012-06-11 35 views
1

我有一组表单中的单选按钮以及此表中的其他输入,并且我无法通过id或名称或标记名称获取单选按钮,如果可能,我想按类型获取它们,因为id而名称是由JSF自动生成的,我不想改变它。如何获取表格中的所有单选按钮?

所以要求是:让所有的单选按钮(不是所有的输入)在表内,所以我可以循环他们。

+1

'document.getElementsByTagName('input')'。检查每个元素的类型。 – SuperSaiyan

回答

3

我希望只有一组单选按钮。在这种情况下,这样的事情可以帮助:

var inputs = yourForm.elements; 
var radioes = []; 
for (var i = 0; i < inputs.length; ++i) { 
    if (inputs[i].type == 'radio') { 
     radioes.push(input[i]); 
    } 
}​ 

如果有不止一组单选按钮,更好的方法是具有与name为键和值作为无线电阵列字典来组中的按钮。

+0

如何将所有这些单选按钮放在一个数组中。 –

+2

内嵌回答:)。严肃地说,请考虑使用jQuery。 – SuperSaiyan

0

鉴于你的表单名称是yourForm ...(<form name = "yourForm">)......一个简单的方法就是分析所有的表单元素和检查的类型,像这样:

var your_namespace = {}; 
your_namespace.your_function = function() { 
    var l = document.yourForm.elements.length; 
    for (i=0; i<l; i++) { 
     var type = yourForm.elements[i].type; 
     if (type=="radio") alert("Form element " + i + " is a radio!"); 
    } 
} 

而是提醒您的canc可以用element id做很多其他的事情。

当使用像MooTools或JQuery这样的框架时,您可以更轻松地使用这种方法。

3

我知道这个问题没有提到jQuery,但我只是想演示它的简单性;请考虑这更多的卖点“嘿,看看jQuery是多么好”。

// look how pretty I am 
var radioButtons = $('table#MyTableId input[type="radio"]'); 
相关问题