如何判断带someVal_前缀的动态ID复选框是否被勾选?
问题解决方法
你的代码无法运行的核心原因是:$('[id^=someVal_]').prop('checked') 返回的是匹配到的第一个复选框的选中状态(布尔值 true/false),布尔值没有 length 属性,所以判断逻辑完全不成立。
下面是两种可行的修正方案:
方案一:直接用:checked选择器筛选已勾选的复选框
if ($('[id^=someVal_]:checked').length > 0) { // 这里写你的业务逻辑 }
:checked 选择器会直接选中所有已勾选的目标复选框,通过判断这个集合的长度是否大于0,就能知道是否有复选框被选中。
方案二:先选中所有目标复选框,再过滤已勾选的
if ($('[id^=someVal_]').filter(':checked').length > 0) { // 这里写你的业务逻辑 }
先通过前缀选择器拿到所有带 someVal_ 前缀的复选框,再用 .filter(':checked') 筛选出已勾选的元素,最后判断集合长度即可。
内容的提问来源于stack exchange,提问作者JaRule1986
相关产品推荐
相关产品推荐

