Как перебрать группу переключателей без формы? - PullRequest
18 голосов
/ 13 августа 2010

Как перебрать группу переключателей без формы в JavaScript или jQuery?

Ответы [ 3 ]

25 голосов
/ 13 августа 2010

Как насчет этого?(используя jQuery):

$('input:radio').each(function() {
  if($(this).is(':checked')) {
    // You have a checked radio button here...
  } 
  else {
    // Or an unchecked one here...
  }
});

Вы также можете переключаться между всеми отмеченными переключателями, как это, если хотите:

$('input:radio:checked').each(function() {
   // Iterate through all checked radio buttons
});
7 голосов
/ 06 августа 2011

... на тот случай, если кто-то захочет сделать это без jQuery (поскольку это было частью вопроса):

Я не уверен, что вы подразумеваете под формой.Если вы имеете в виду, что не хотите передавать элемент формы в функцию javascript , вы можете сделать это следующим образом:

for (var i = 0; i < document.form_name.radio_name.length; i++) {
    if (document.form_name.radio_name[i].checked) {
        // ...
    }
}

Если вы имеете в виду без формы, как у вас естьнет узла формы, вы можете обернуть их в span (или div) и использовать такой код:

var span = document.getElementById("span_id");
var inputs = span.getElementsByTagName("input");
for (var i = 0; i < inputs.length; ++i) {
    if (inputs[i].checked) {
        // ...
    }
}
3 голосов
/ 13 августа 2010

Я не могу быть слишком уверен, что вы имеете в виду, но если вы хотите что-то сделать со всеми переключателями на странице, вы можете сделать это:

$("input:radio").each(function(){
   //do something here
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...