控制checkbox被选数量,未选的变灰色

简介: 控制checkbox被选数量,未选的变灰色

checkbox是html里面的一种复选框,操作这个东西的时候说实话是很麻烦的,因为是靠我们判断他的状态是不是被选中来操作的,今天要说的怎么将一部分checkbox选中以后,没有被选的变灰色,按照我们自己的要求来操作复选框,例子:

我们要求选中三个以后就不让用户再选择了:

我们今天就做这个。

首先我们画出几个复选框:

<input type='checkbox' name='cate[]' value='102' οnclick="check();"><label>vue</label> 
<input type='checkbox' name='cate[]' value='102' οnclick="check();"><label>boostrap</label>
<input type='checkbox' name='cate[]' value='102' οnclick="check();"><label>C</label>
<input type='checkbox' name='cate[]' value='102' οnclick="check();"><label>C++</label> 
<input type='checkbox' name='cate[]' value='102' οnclick="check();"><label>C#</label>
<input type='checkbox' name='cate[]' value='102' οnclick="check();"><label>PHP</label>

通过DOM获取到复选框的元素:

var obj=document.getElementsByTagName("input")

最后我们写控制数量的函数:

function check() { 
      var sun=0; 
        for(var i=0;i<obj.length;i++) { 
          if(obj[i].type=="checkbox" && obj[i].checked) {
            sun++; 
            if( sun< 3 ) 
            { 
              for(var j=0;j<obj.length;j++) 
              obj[j].disabled = false;
            } 
          }
          else if(sun == 3 ) { 
            for(var j=0;j<obj.length;j++) { 
              if ( !obj[j].checked ) 
              obj[j].disabled = true; 
            } 
            event.srcElement.checked=true; 
            layer.msg("最多选择3个!");
            break; 
          } 
          else if(sun > 3 ) 
          { 
            event.srcElement.checked=false; 
            break; 
          } 
        } 
    } 

这样就基本完成了,如果没看明白的可以下方留言。

效果展示:

这里用到的css:

      input{
          display: inline-block;
          vertical-align: middle;
          margin: 0;
          padding: 0;
          width: 20px;
          height: 20px;
          background: url(../css/polaris/polaris.png) no-repeat;
          border: none;
          cursor: pointer;
      }
      label{
        font-family:"agency fb";
        font-size: larger;
      }

引用到的js和css:

<link href="../css/layui/css/layui.css" rel="stylesheet"/>
    <link href="../css/polaris/polaris.css" rel="stylesheet" />
    <script src="../js/jquery-1.10.2.min.js" type="text/javascript"></script>
    <script src="../css/layui/lay/dest/layui.all.js" type="text/javascript"></script>
    <script src="../js/icheck.js"></script>

这里的icheck.js是一个美化checkbox的插件,后期我会简单的介绍一下这个插件具体怎么用。

相关文章
|
8月前
|
前端开发
复选框样式修改(复选框变为圆形)
复选框样式修改(复选框变为圆形)
vitepress如何配置右上角的小两侧标志,利用nav标签进行修改,右侧边栏如何设置成自动弹出水平框,让原先隐藏的框能够显示出来
vitepress如何配置右上角的小两侧标志,利用nav标签进行修改,右侧边栏如何设置成自动弹出水平框,让原先隐藏的框能够显示出来
|
JavaScript
checkbox选中和取消,控制dom元素颜色变化
checkbox选中和取消,控制dom元素颜色变化
72 0
点击增加按钮,添加input,超过三个则增加按钮隐藏
点击增加按钮,添加input,超过三个则增加按钮隐藏
103 0
|
前端开发 JavaScript
echarts tooltip设置正常却无法显示被遮挡设置层级堆叠顺序的问题解决方案
echarts tooltip设置正常却无法显示被遮挡设置层级堆叠顺序的问题解决方案
609 0
布局之悬浮显示更多文本并增加箭头指示效果
布局之悬浮显示更多文本并增加箭头指示效果
139 0
布局之悬浮显示更多文本并增加箭头指示效果
灰色3D按钮组合
在线演示 本地下载
630 0
|
开发者
解决 Popup 位置不随窗口移动更新的问题
原文:解决 Popup 位置不随窗口移动更新的问题 Popup弹出后,因业务需求设置了StaysOpen=true后,移动窗口位置或者改变窗口大小,Popup的位置不会更新。 如何更新位置? 获取当前Popup的Target绑定UserControl所在窗口,位置刷新时,时时更新Popup的位置即可。
1077 0

热门文章

最新文章