限制用户单击时选择的复选框数量
Limiting the number of checkboxes selected by user on click
我们有一些对应于不同类别的复选框。我们想限制用户一次只能选中3个复选框,所以我设置了一个警报,当超过3个类别被选中时。
<?php
$countC = 0;
$count = 0;
foreach($fcategories as $fvalue) {?>
<label>
<input class="group1" type="checkbox" name="catCheck[]" onclick="chkcontrol(<?php e($count)?>);" value="<?php e($fvalue['Qna_category']['id']);?>" ></input>
<?php e($fvalue['Qna_category']['category']);?></label><br/><?php $count++; }?>
和函数chkcontrol()
;
<script type="text/javascript">
function chkcontrol(count) {
var msg= '';
var done = false;
if(count >= 3) {
msg = "Maximum 3 categories"
done = true;
}
if(done) {
alert(msg);
return ;
}
}
</script>
我的问题是,警报弹出打开,但它没有删除第四个点击复选框&此外,除了消息弹出框外,尽量避免用户勾选3个以上的框。
您的代码现在有点不方便。为了阻止选择的发生,你需要在onclick事件上设置event.preventDefault()
,但因为它是你的count
参数,它取代了事件参数。
一个解决方法是取消选中:
if (count >= 3) {
this.setAttribute("checked", "");
}
混合PHP和JavaScript通常会给你带来不方便的代码。最好将PHP中的相关状态序列化为JavaScript,例如:
var num_selected = <?php echo json_encode($count);?>
相关文章:
- 通过复选框选择形成填充
- jQuery根据相关复选框选择求和单元格
- 根据用户复选框选择显示或隐藏下拉框
- 复选框选择组合
- 如何根据角度中的复选框选择过滤结果
- 根据复选框选择 jQuery 更新文本框
- jquery选择复选框选择的值
- 复选框选择/取消选择触发器第一次工作,但在随后的尝试中失败
- 如何发布单选和复选框选择?表单由php和js处理
- 使用querySelectorAll进行的复选框选择不起作用
- 具有延迟的多个复选框选择以检查其他复选框更改
- 显示 jQuery 复选框选择
- 复选框选择似乎彼此不一致
- 一个变量,多个复选框选择/取消选择 jQuery
- 使用 Json 数据源在数据表中实现复选框选择
- 使用 Javascript 更新复选框选择时的输入字段
- 将复选框选择保留在多页分页中
- 在复选框选择后验证输入类型文本
- 如何根据 Javascript 中的复选框选择打开引导模式窗口
- 如何检测和获取 asp.net 中的复选框/选择框(html 标记)值