2 Stimmen

Schneller Weg, um zu überprüfen, ob alle Kontrollkästchen nicht ausgewählt sind?

Gibt es einen schnellen Weg oder eine Funktion, die mir sagt, wahr/falsch, wenn alle Kontrollkästchen abgewählt sind? Ohne durch das Array zu gehen? (mit JS und HTML)

Alle meine Kontrollkästchen haben den gleichen Namen...

<form action="/cgi-bin/Lib.exe" method=POST name="checks" ID="Form2">
    <input type=checkbox name="us" value="Joe" ID="Checkbox1">
    <input type=checkbox name="us" value="Dan" ID="Checkbox2">
    <input type=checkbox name="us" value="Sal" ID="Checkbox3">
</form>

0voto

Wenn Sie eine große Anzahl von Kontrollkästchen haben, die Sie nicht in einer Schleife testen wollen, ist es vielleicht effizienter, diesen Ansatz zu verwenden.

var checked = 0;

$("input[type=checkbox]").live("click", function() {
    if($(this).attr("checked")) checked++;
    else checked--;
}

Dann könnten Sie wie folgt testen.

if(checked === 0) {
    doSomething();
}

0voto

MaxZoom Punkte 7300

Die richtige Lösung mit jQuery-Attribut checked :

$checkboxes = $('#Form2 input:checkbox');
$checkboxes.on('click', checkboxes);

function checkboxes() {
  var allChecked = $checkboxes.not(':checked').length == 0;
  console.log(allChecked);
}

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<form action="/cgi-bin/Lib.exe" method=POST name="checks" ID="Form2">
    <input type=checkbox name="us1" value="Joe" ID="Checkbox1"><label>Joe</>
    <input type=checkbox name="us2" value="Dan" ID="Checkbox2"><label>Dan</>
    <input type=checkbox name="us3" value="Sal" ID="Checkbox3"><label>Sal</>
</form>

0voto

Hracho Avagyan Punkte 31

Noch einfacher ohne Schleife

const toggleCheckboxes = checkbox => {
   if(checkbox.checked){
      return true
   }else{
      if(document.querySelectorAll(':checked').length === 0){
          // All are unchecked
          return false
      }
   }
}

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X