最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - How to get all radio buttons inside a table? - Stack Overflow

programmeradmin1浏览0评论

i have group of radio buttons inside a table along with other inputs in this table, and i can't get the radio buttons by id or name or by tag name, i want to get them by type if this possible, because id and name is auto generated by JSF, and i don't want to change this.

so the requirement is: get all radio buttons only (not all inputs) inside the table so i can loop on them.

i have group of radio buttons inside a table along with other inputs in this table, and i can't get the radio buttons by id or name or by tag name, i want to get them by type if this possible, because id and name is auto generated by JSF, and i don't want to change this.

so the requirement is: get all radio buttons only (not all inputs) inside the table so i can loop on them.

Share Improve this question edited May 19, 2013 at 12:08 Mahmoud Saleh asked Jun 11, 2012 at 10:10 Mahmoud SalehMahmoud Saleh 33.6k123 gold badges350 silver badges512 bronze badges 1
  • 1 document.getElementsByTagName('input'). Check for the type of each element. – UltraInstinct Commented Jun 11, 2012 at 10:16
Add a ment  | 

3 Answers 3

Reset to default 4

I hope there's only one set of radio buttons. In that case something like this can help:

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

In case there are more than one set of radio buttons, better approach would be to have a dictionary with the name as the key and the value as the array of radio buttons in the group.

I know the question doesn't mention jQuery, but I just wanted to demonstrate the simplicity of it; please consider this more of a selling point of "hey, look how nice jQuery is".

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

Given your form name is yourForm ... (<form name = "yourForm">) ... an easy way is just to parse all form elements and check for the type, something like this:

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!");
    }   
}

Instead of alerting you can ofc do alot of other things with the element id.

You can have this way easier when using a framework like MooTools or JQuery.

发布评论

评论列表(0)

  1. 暂无评论