jquery验证至少检查一个动态id的复选框

时间:2017-06-06 07:54:44

标签: jquery

我想验证是否选中了至少一个复选框。复选框是动态添加的,因此确切的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);
}

这里的问题是这需要所有复选框。我也没有表单验证器

4 个答案:

答案 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;
&#13;
&#13;

参考文献: - https://stackoverflow.com/a/39849541/4248328

答案 1 :(得分:0)

您可以使用长度

检查选中的复选框的数量
 if($cbx_group.is(":checked").length > 0))
 {
    $cbx_group.prop('required', false);
 }

答案 2 :(得分:0)

您可能希望在此链接中引用此问题已解决

Check if checkbox is checked with jQuery

答案 3 :(得分:0)

你可以试试这个:

使用attribute contains selector。 链接:http://api.jquery.com/attribute-contains-selector/

&#13;
&#13;
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;
&#13;
&#13;