我们有一些对应不同类别的复选框。我们希望限制用户一次仅检查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>
我的问题是警报弹出窗口打开,但它没有删除第4个单击的复选框&amp;除了消息弹出窗口之外,还可以阻止用户检查超过3个框。
答案 0 :(得分:0)
您的代码现在有点不方便。要阻止选择发生,您需要在onclick事件上event.preventDefault()
,但因为它是count
参数取代事件参数。
解决方法是取消选中它:
if (count >= 3) {
this.setAttribute("checked", "");
}
混合使用PHP和JavaScript通常会给您带来不便的代码。最好将PHP中的任何相关状态序列化为JavaScript,例如:
var num_selected = <?php echo json_encode($count);?>