【发布时间】:2010-06-14 16:57:39
【问题描述】:
我需要一个接受参数的函数,其 id 示例为 div 然后在 div 内循环以查找复选框,如果有任何检查,是否检查其值,如果每个复选框都被检查返回 false,则返回 true。
【问题讨论】:
标签: asp.net javascript jquery
我需要一个接受参数的函数,其 id 示例为 div 然后在 div 内循环以查找复选框,如果有任何检查,是否检查其值,如果每个复选框都被检查返回 false,则返回 true。
【问题讨论】:
标签: asp.net javascript jquery
你可以这样做
$('#parent:has(input:checkbox:checked)')
如果您找到任何可以返回 true 的元素,例如 .is('*') 或 .length == 1
你可以写一个函数,甚至是一个小插件:
$.fn.extend({
hasCheckedBoxes: function() {
return this.has('input:checkbox:checked').is('*');
}
});
这可以用作:
if($('#Documents').hasCheckedBoxes()) //`#Documents` contains a checked box.
或
if($('div').hasCheckedBoxes()) //true if any `<p>` contains a checked box.
【讨论】:
希望我对您的理解正确。这就是我认为您所要求的:一个函数,该函数接受元素 ID,如果相应元素包含任何选中的复选框,则返回 false,否则返回 true。
这是一个无库版本。与 jQuery 版本相比,它会更快,并且可以在更多浏览器中运行。
function containsNoCheckedCheckboxes(id) {
var el = document.getElementById(id);
if (el) {
var inputs = el.getElementsByTagName("input");
for (var i = 0, len = inputs.length; i < len; ++i) {
if (inputs[i].type == "checkbox" && inputs[i].checked) {
return false;
}
}
}
return true;
}
【讨论】: