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

javascript - Check if all radio buttons checked having particular value - Stack Overflow

programmeradmin2浏览0评论
<input type="radio" checked="checked" value="true" name="child">
<span class="label">Show</span>
<input type="radio" class="hide" value="false" name="child">
<span class="label">Hide</span>

and another radio button on the same page

<input type="radio" checked="checked" value="true" name="baby">
<span class="label">Show</span>
<input type="radio" class="hide" value="false" name="baby">
<span class="label">Hide</span>

I need to know if all the radio buttons having value="false" are checked using javascript.

Note: The radio button names are different

<input type="radio" checked="checked" value="true" name="child">
<span class="label">Show</span>
<input type="radio" class="hide" value="false" name="child">
<span class="label">Hide</span>

and another radio button on the same page

<input type="radio" checked="checked" value="true" name="baby">
<span class="label">Show</span>
<input type="radio" class="hide" value="false" name="baby">
<span class="label">Hide</span>

I need to know if all the radio buttons having value="false" are checked using javascript.

Note: The radio button names are different

Share Improve this question edited May 20, 2011 at 7:11 Oscar Mederos 29.9k25 gold badges88 silver badges128 bronze badges asked May 20, 2011 at 7:07 vetri02vetri02 3,2998 gold badges37 silver badges43 bronze badges
Add a ment  | 

3 Answers 3

Reset to default 2

If you use jQuery, it's very clean:

if ($("input[type='radio'][value='false']").not(':selected').length==0) {
  // Do what you want
}

The jQuery expression means all the false radio buttons are selected

boudou beat me by 35 seconds...

However, besides the for you can use a foreach logic:

var buttons = document.getElementsByTagName("input");

for (var i = 0; i < buttons.length; i++) {
    var button = buttons[i];
    var id = button.getAttribute("id");
    var type = button.getAttribute("type");
    var value = button.getAttribute("value");
    var checked = button.getAttribute("checked");
    if (type === "radio" && value === "false" && checked === "checked") {
        alert(id);
    }
}

The script can be condensed, it's written like this to allow a better understanding.

See a demo here.

You can try this:

function testRadios() {
    var r = document.getElementsByTagName("input");

    for (var i=0; i < r.length; i++) {
        if (   (r[i].type == "radio")
            && (r[i].value == "false")
            && (r[i].checked != "checked")) {
            return false;
    }
    return true;
}

PS: Use <label> instead of <span class="label">.

发布评论

评论列表(0)

  1. 暂无评论