检查所有选中的单选按钮是否具有特定值

时间:2011-05-20 07:07:52

标签: javascript radio-button

<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>

和同一页面上的另一个单选按钮

<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>

我需要知道是否所有使用javascript检查value="false"的单选按钮。

注意:单选按钮名称不同

3 个答案:

答案 0 :(得分:2)

如果您使用jQuery,它非常干净:

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

jQuery表达式意味着选择了所有的错误单选按钮

答案 1 :(得分:1)

你可以试试这个:

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:使用<label>代替<span class="label">

答案 2 :(得分:1)

boudou击败了我35秒......

但是,除了for之外,您还可以使用foreach逻辑:

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

脚本可以压缩,它是这样写的,以便更好地理解。

查看演示here