首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何限制复选框单击

如何限制复选框单击
EN

Stack Overflow用户
提问于 2014-11-21 05:07:22
回答 3查看 443关注 0票数 2

我想在点击它将显示消息后,选择最多两个复选框。当我在复选框中使用数组时,我已经实现了它的工作代码,当我不使用数组时,它不会是work.my代码:

代码语言:javascript
复制
  <script type="text/javascript">
  function chkcontrol(j) {
  var total=0;
  for(var i=0; i < document.form1.ckb.length; i++){
  if(document.form1.ckb[i].checked){
  total =total +1;}
  if(total > 3){
  alert("Please Select only three") 
  document.form1.ckb[j].checked = false ;
  return false;
  }
  }
  }
  </script>


  <form name=form1 method=post action=check.php>
  <table width=''250''align=center>
  <tr bgcolor=''#f1f1f1'' ><td >
  <input type=checkbox name=ckb value=1 onclick='chkcontrol(0)';></td><td >PHP</td></tr>
  <tr bgcolor=''#ffffff'' ><td >
  <input type=checkbox name=ckb value=2 onclick='chkcontrol(1)';></td><td >Perl</td></tr>
  <tr bgcolor=''#f1f1f1'' ><td >
  <input type=checkbox name=ckb value=3 onclick='chkcontrol(2)';></td><td >MySQL</td></tr>
  <tr bgcolor=''#ffffff'' ><td >
  <input type=checkbox name=ckb value=4 onclick='chkcontrol(3)';></td><td >ASP</td></tr>
  <tr bgcolor=''#f1f1f1'' ><td >
  <input type=checkbox name=ckb value=5 onclick='chkcontrol(4)';> 
  </td><td >JavaScript</td></tr>
  </table>
  </form>

上面的代码正在工作,但是当我使用

代码语言:javascript
复制
   <input type=checkbox name=ckb[] value=4 onclick='chkcontrol(3)';></td><td >ASP</td></tr>

不起作用

代码语言:javascript
复制
  I would like to store multiple value in array of php 

   <?php
   print_r($_POST['ckb']);
   ?>  
EN

回答 3

Stack Overflow用户

发布于 2014-11-21 05:32:15

也许你可以试试这个:

代码语言:javascript
复制
 function chkcontrol(j) {
  var total=0;
  for(var i=0; i < document.form1["ckb[]"].length; i++){
  if(document.form1["ckb[]"][i].checked){
  total =total +1;}
  if(total > 3){
  alert("Please Select only three") 
  document.form1["ckb[]"][j].checked = false ;
  return false;
  }
  }
  }
票数 0
EN

Stack Overflow用户

发布于 2014-11-21 05:44:47

您可以采用这样更清晰的实现

代码语言:javascript
复制
<input type = checkbox name = 'ckb' value = 1 onclick = 'chkcontrol(this)'> 

function chkcontrol(obj) {
    var checkedLen = 0, checkBoxes = document.getElementsByName(obj.name);
    for(var i = 0; i < checkBoxes.length; i++) {
        if(checkBoxes[i].checked) {
            checkedLen++;
        }
        if(checkedLen > 3) {
            alert("Please Select only three") ;
            obj.checked = false;
            return;
        }
    }
}
票数 0
EN

Stack Overflow用户

发布于 2014-11-21 05:51:50

很抱歉我只知道C,但肯定有什么叫计时器的。它将继续运行您希望它运行的代码。您可以继续签入选中的复选框的签入号。

票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27054487

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档