我想验证是否选中了至少一个复选框。复选框是动态添加的,因此确切的ID是未知的。我所知道的是,他们以相同的ID名称开头,例如" Sameid_xxx"," Sameid_xx1" " Sameid_xx2"等。
这就是我所拥有的:
$cbx_group = $('input[Id^="Sameid"]');
$cbx_group.prop('required', true);
if ($cbx_group.is(":checked")) {
$cbx_group.prop('required', false);
}
这里的问题是这需要所有复选框。我也没有表单验证器
答案 0 :(得分:1)
使用$cbx_group.is(":checked")
,如下所示: -
以下代码将执行两项操作: -
1.如果选中任何一个,则从所有复选框中删除required
。
2.取消勾选所有复选框后,再次将required
添加回所有复选框。
代码: -
$cbx_group = $('input[Id^="Sameid"]');
$cbx_group.prop('required', true);
$cbx_group.on('click',function(){
if($cbx_group.is(":checked")) {
$cbx_group.prop('required', false);
}else{
$cbx_group.prop('required', true);
}
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="checkbox" id="Sameid_XXX">1<br>
<input type="checkbox" id="Sameid_XX1">2<br>
<input type="checkbox" id="Sameid_XX2">3<br>
<input type="checkbox" id="Sameid_XX3">4<br>
&#13;
答案 1 :(得分:0)
您可以使用长度
检查选中的复选框的数量 if($cbx_group.is(":checked").length > 0))
{
$cbx_group.prop('required', false);
}
答案 2 :(得分:0)
您可能希望在此链接中引用此问题已解决
答案 3 :(得分:0)
你可以试试这个:
使用attribute contains selector
。
链接:http://api.jquery.com/attribute-contains-selector/
function test() {
$cbx_group = $('input[Id*="Sameid"]');
$cbx_group.prop('required', true);
if ($cbx_group.is(":checked")) {
$cbx_group.prop('required', false);
console.log('checked');
} else {
console.log('not checked');
}
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="checkbox" id="Sameid1">
<input type="checkbox" id="Sameid2">
<button id="one" onclick="test()">Click</button>
&#13;