Ich habe eine Liste mit Checkboxen:
<input type="checkbox" name="answer" id="id_1' value="1" />
<input type="checkbox" name="answer" id="id_2' value="2" />
...
<input type="checkbox" name="answer" id="id_n' value="n" />
Ich kann alle Werte von aktivierten Kontrollkästchen sammeln. Meine Frage ist, wie alle Werte von ungeprüften Kontrollkästchen erhalten werden. Ich habe es versucht:
$("input:unchecked").val();
um das Kontrollkästchen eines ungeprüften Kontrollkästchens zu erhalten, bekam ich jedoch:
Syntaxfehler, nicht erkannter Ausdruck: nicht markiert.
kann jemand diese Frage beleuchten? Danke dir!
Wie in der Fehlermeldung angegeben, enthält jQuery keinen :unchecked
-Selektor.
Stattdessen müssen Sie den :checked
-Selektor umkehren:
$("input:checkbox:not(:checked)")
$("input:checkbox:not(:checked)")
Sie erhalten die ungeprüften Kästchen.
$.extend($.expr[':'], {
unchecked: function (obj) {
return ((obj.type == 'checkbox' || obj.type == 'radio') && !$(obj).is(':checked'));
}
});
$("input:unchecked")
Sie können wie folgt verwenden:
$(":checkbox:not(:checked)")
$("input[type='checkbox']:not(:checked):not('\#chkAll\')").map(function () {
var a = "";
if (this.name != "chkAll") {
a = this.name + "|off";
}
return a;
}).get().join();
Dadurch werden alle nicht markierten Kontrollkästchen abgerufen und das Kontrollkästchen "chkAll", das zum Aktivieren von | Alle Kontrollkästchen verwendet wird, ausgeschlossen. Da ich wissen möchte, welchen Wert ich an die Datenbank weitergebe, habe ich diese Option deaktiviert, da die Kontrollkästchen einen Wert von "on" haben.
//looking for unchecked checkboxes, but don’t include the checkbox all that checks or unchecks all checkboxes
//.map - Pass each element in the current matched set through a function, producing a new jQuery object containing the return values.
//.get - Retrieve the DOM elements matched by the jQuery object.
//.join - (javascript) joins the elements of an array into a string, and returns the string.The elements will be separated by a specified separator. The default separator is comma (,).
Auch mit reinen js kann man so erreichen:
var matches = document.querySelectorAll('input[type="checkbox"]:not(:checked)');
$(".clscss-row").each(function () {
if ($(this).find(".po-checkbox").not(":checked")) {
// enter your code here
} });
Um class
auszuwählen, können Sie Folgendes tun:
$("input.className:checkbox:not(:checked)")