Проверка всех радиокнопок без Jquery - PullRequest
2 голосов
/ 05 февраля 2012

Я хочу проверить первый элемент нескольких групп радиокнопок.

Я использую Firebug, поэтому я не хочу, да, я знаю, что есть firequery, но должен быть способ, которым они делали это в старые времена:)

Любая помощь будет велика, спасибо заранее.

Ответы [ 2 ]

4 голосов
/ 05 февраля 2012

Цикл назад по document.getElementsByTagName('input') и установка checked на true, если type равно "radio".

Если вы попытаетесь проверить несколько кнопок в одной группе, последняябудет удерживаться.
Таким образом, цикл в обратном направлении будет заканчиваться проверкой первой опции в каждой группе.

1 голос
/ 05 февраля 2012

Обновление

Чувствуя себя немного глупо, вы сказали , что вы использовали Firebug и, следовательно, Firefox, и поэтому у нас есть querySelector. Таким образом, проверка первого переключателя в любой заданной группе является однострочным:

document.querySelector('input[type="radio"][name="theGroupName"]').checked = true;

Живой пример

querySelector возвращает первый соответствующий элемент, поэтому вышеприведенное вернет первый input элемент с type="radio" и name="theGroupName". Затем мы просто устанавливаем checked на true.

Конечно, это не относится к первой из всех групп, но дает вам больше контроля и (опять же) однострочно & mdash; удобно для Firebug.


Оригинальный ответ

Вы можете использовать getElementsByTagName, чтобы получить все input элементы в порядке документа. Затем переберите их, обрабатывая только те, у которых есть type="radio", и помните последние name, которые вы набрали; отметьте checked = true для каждого имени.

например:.

var inputs = document.getElementsByTagName('input');
var lastName, index, input;
for (index = 0; index < inputs.length; ++index) {
    input = inputs.item(index);
    if (input.type.toLowerCase() === "radio") {
        if (input.name !== lastName) {
            lastName = input.name;
            input.checked = true;
        }
    }
}

Живой пример

Если вы хотите ограничить это каким-либо контейнером, вы можете использовать element версию getElementsByTagName.

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