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的插件,后期我会简单的介绍一下这个插件具体怎么用。