Проверьте, все ли переключатели отмечены определенным значением - PullRequest
2 голосов
/ 20 мая 2011
<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>

Мне нужно знать, все ли переключатели, имеющие value="false", проверены с использованием javascript.

Примечание: Названия переключателей различны

Ответы [ 3 ]

2 голосов
/ 20 мая 2011

Будешь бить меня на 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);
    }
}

Сценарий может быть сжат, он написан так, чтобы лучше понять.

См. Демо здесь .

2 голосов
/ 20 мая 2011

Если вы используете jQuery, он очень чистый:

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

Выражение jQuery означает, что все ложные переключатели выбраны

1 голос
/ 20 мая 2011

Вы можете попробовать это:

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...