我有一个复选框列表:
<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();
获取未选中复选框的值,但我得到了:
语法错误,无法识别的表达式:未选中。
有人可以解释这个问题吗?谢谢!
答案 0 :(得分:389)
正如错误消息所述,jQuery不包含:unchecked
选择器
相反,您需要反转:checked
选择器:
$("input:checkbox:not(:checked)")
答案 1 :(得分:24)
$("input:checkbox:not(:checked)")
会为您提供未选中的复选框。
答案 2 :(得分:10)
$.extend($.expr[':'], {
unchecked: function (obj) {
return ((obj.type == 'checkbox' || obj.type == 'radio') && !$(obj).is(':checked'));
}
});
$("input:unchecked")
答案 3 :(得分:2)
$("input[type='checkbox']:not(:checked):not('\#chkAll\')").map(function () {
var a = "";
if (this.name != "chkAll") {
a = this.name + "|off";
}
return a;
}).get().join();
这将检索所有未选中的复选框并排除&#34; chkAll&#34;我用来检查|取消选中所有复选框的复选框。因为我想知道我传递给数据库的值是什么,所以我将它们设置为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 (,).
答案 4 :(得分:2)
您可以这样使用:
$(":checkbox:not(:checked)")
答案 5 :(得分:2)
也可以使用纯js通过以下方式实现:
var matches = document.querySelectorAll('input[type="checkbox"]:not(:checked)');
答案 6 :(得分:0)
$(".clscss-row").each(function () {
if ($(this).find(".po-checkbox").not(":checked")) {
// enter your code here
} });
答案 7 :(得分:0)
要通过class
选择,您可以执行以下操作:
$("input.className:checkbox:not(:checked)")