2

我在表中有一组单选按钮以及该表中的其他输入,我无法通过 id 或名称或标签名称获取单选按钮,如果可能的话,我想按类型获取它们,因为 id 和名称是由 JSF 自动生成的,我不想改变它。

所以要求是:只获取表格内的所有单选按钮(不是所有输入),以便我可以循环它们。

4

3 回答 3

4

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

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

如果有不止一组单选按钮,更好的方法是将字典name作为键,值作为组中的单选按钮数组。

于 2012-06-11T10:28:53.723 回答
4

我知道这个问题没有提到jQuery,但我只是想证明它的简单性;请将此视为“嘿,看看 jQuery 多棒”的卖点。

// look how pretty I am
var radioButtons = $('table#MyTableId input[type="radio"]');
于 2012-06-11T10:34:08.377 回答
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!");
    }   
}

您可以使用元素 ID 做很多其他事情,而不是提醒您。

使用 MooTools 或 JQuery 等框架时,您可以更轻松地使用这种方式。

于 2012-06-11T10:29:53.123 回答