it-swarm-pt.tech

Como obter todas as caixas de seleção marcadas

Eu tenho um conjunto de caixas de entrada com o mesmo nome e gostaria de determinar quais caixas de seleção foram marcadas usando javascript. Como posso fazer isso? Eu sei apenas como obter todas as caixas de seleção da seguinte maneira:

var checkboxes = document.getElementsByName('mycheckboxes');
44
Sameh Farahat

Um loop for simples que testa a propriedade checked e anexa as verificadas a uma matriz separada. A partir daí, você pode processar a matriz de checkboxesChecked mais, se necessário.

// Pass the checkbox name to the function
function getCheckedBoxes(chkboxName) {
  var checkboxes = document.getElementsByName(chkboxName);
  var checkboxesChecked = [];
  // loop over them all
  for (var i=0; i<checkboxes.length; i++) {
     // And stick the checked ones onto an array...
     if (checkboxes[i].checked) {
        checkboxesChecked.Push(checkboxes[i]);
     }
  }
  // Return the array if it is non-empty, or null
  return checkboxesChecked.length > 0 ? checkboxesChecked : null;
}

// Call as
var checkedBoxes = getCheckedBoxes("mycheckboxes");
88
Michael Berkowski

No IE9 +, Chrome ou Firefox, você pode:

var checkedBoxes = document.querySelectorAll('input[name=mycheckboxes]:checked');
70
PhilT

Para um liner simples de dois (ou um) código, este pode ser:

checkboxes = document.getElementsByName("NameOfCheckboxes");
selectedCboxes = Array.prototype.slice.call(checkboxes).filter(ch => ch.checked==true);

Aqui, a parte Array.prototype.slice.call() converte o objeto NodeList de todas as caixas de seleção que contêm esse nome ("NameOfCheckboxes") em uma nova matriz, na qual você usa o método de filtro. Você também pode, por exemplo, extrair os valores das caixas de seleção adicionando uma .map(ch => ch.value) no final da linha 2. A => é a notação da função de seta do javascript.

0
Daniel