найти все непроверенные флажки в jquery
у меня есть список чекбоксов:
<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" />
Я могу собрать все значения проверенных флажков; мой вопрос в том, как можно получить все значения непроверенных флажков? Я попробовал:
$("input:unchecked").val();
чтобы получить значение непроверенного флажка, но я получил:
синтаксическая ошибка, нераспознанный выражение: бесконтрольно.
может кто-нибудь пролить свет на этот вопрос? спасибо!
7 ответов:
как говорится в сообщении об ошибке, jQuery не включают
:uncheckedселектор.
Вместо этого вам нужно инвертировать:checkedселектор:$("input:checkbox:not(:checked)")
$.extend($.expr[':'], { unchecked: function (obj) { return ((obj.type == 'checkbox' || obj.type == 'radio') && !$(obj).is(':checked')); } }); $("input:unchecked")
$("input[type='checkbox']:not(:checked):not('\#chkAll\')").map(function () { var a = ""; if (this.name != "chkAll") { a = this.name + "|off"; } return a; }).get().join();Это позволит получить все непроверенные флажки и исключить флажок "chkAll", который я использую, чтобы проверить|снять все флажки. Поскольку я хочу знать, какое значение я передаю в базу данных, я установил их в off, так как флажки дают мне значение on.
//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 (,).
$(".clscss-row").each(function () { if ($(this).find(".po-checkbox").not(":checked")) { // enter your code here } });
также это может быть достигнуто с помощью чистого js таким образом:
var matches = document.querySelectorAll('input[type="checkbox"]:not(:checked)');
Comments