274 Stimmen

Den Wert eines markierten Kontrollkästchens abrufen?

Ich habe also einen Code, der wie folgt aussieht:

<input class="messageCheckbox" type="checkbox" value="3" name="mailId[]">
<input class="messageCheckbox" type="checkbox" value="1" name="mailId[]">

Ich brauche nur Javascript, um den Wert des aktuell angekreuzten Kästchens zu erhalten.

EDIT : Um etwas hinzuzufügen, muss nur EIN Kästchen angekreuzt werden.

1voto

bomberjackets Punkte 332

Ich bin überrascht, dass hier keine funktionierenden Vanilla-JavaScript-Lösungen zu sehen sind (die am häufigsten gewählte Antwort funktioniert nicht, wenn man sich an bewährte Verfahren hält und unterschiedliche IDs für jedes HTML-Element verwendet). Wie auch immer, dies tat die Arbeit für mich:

Array.prototype.slice.call(document.querySelectorAll("[name='mailId']:checked"),0).map(function(v,i,a) { 
      return v.value; 
  });

0voto

Dave Clark Punkte 2165

Wenn Sie Folgendes verwenden Semantische UI React , data wird als zweiter Parameter an den Befehl onChange Veranstaltung.

Sie können also auf die checked Eigenschaft wie folgt:

<Checkbox label="Conference" onChange={(e, d) => console.log(d.checked)} />

0voto

DanimalReks Punkte 165

Wenn Sie die Werte aller Kontrollkästchen mit jQuery abrufen möchten, könnte Ihnen dies helfen. Damit wird die Liste geparst und je nach gewünschtem Ergebnis können Sie anderen Code ausführen. Übrigens muss man für diesen Zweck die Eingabe nicht mit Klammern [] benennen. Ich habe sie weggelassen.

  $(document).on("change", ".messageCheckbox", function(evnt){
    var data = $(".messageCheckbox");
    data.each(function(){
      console.log(this.defaultValue, this.checked);
      // Do something... 
    });
  }); /* END LISTENER messageCheckbox */

0voto

Carson Punkte 3411

reines Javascript und moderne Browser

// for boolean
document.querySelector(`#isDebugMode`).checked

// checked means specific values
document.querySelector(`#size:checked`)?.value ?? defaultSize

Beispiel

<form>
  <input type="checkbox" id="isDebugMode"><br>
  <input type="checkbox" value="3" id="size"><br>
  <input type="submit">
</form>

<script>
  document.querySelector(`form`).onsubmit = () => {
    const isDebugMode = document.querySelector(`#isDebugMode`).checked
    const defaultSize = "10"
    const size = document.querySelector(`#size:checked`)?.value ?? defaultSize
    //  for defaultSize is undefined or null
    // const size = document.querySelector(`#size:checked`)?.value
    console.log({isDebugMode, size})
    return false
  }
</script>

-7voto

VanThaoNguyen Punkte 716

In meinem Projekt verwende ich normalerweise diese Schnipsel:

var type[];
$("input[name='messageCheckbox']:checked").each(function (i) {
                type[i] = $(this).val();
            });

Und es funktioniert gut.

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