html复选框

之所以想到复选框是因为在上周的工作中看到同事的代码让我大开眼界,我是真没有想到一个最基本,最简单的页面元素都能写的这样抽象难用

最简单的实现方法去百度搜html复选框,这是对自己盲写不自信的童鞋,或者去w3,菜鸟,要是这样都搞不定,那我也不知道咋弄了

//dom部分
<input type="checkbox" value="0" checked>候选项1
<input type="checkbox" value="1">候选项2
<input type="checkbox" value="2">候选项3

//逻辑部分
<script>
    
    //把第一个复选框设置未false,使用了jquery的索引
    $('input[type=checkbox]').eq(0).prop('checked', false)
    
    //所有都置为true,注意这里不能用attr,只能用prop
    $('input[type=checkbox]').prop('checked', true)

    //查询哪些被选中
    $('input[type=checkbox]').filter(':checked')

    //如果不用伪类就用循环,注意类数组不能用forEach
    function getValue(){
          const cbs =  $('input[type=checkbox]').toArray();
          let value = '';
          for(let i=0; i<cbs.length; i++){

              if($(cbs[i]).prop('checked')){
                  value += $(cbs[i]).val() + ','
              }
           }
           return value;
    }
  
</script>

那如果我不想用原生的复选框咋办,两个办法,覆盖浏览器复选框的样式,这是我强烈不推荐的,第二种就是用img或者label的background,而后者就是我同事写的东西,如果非要用label去做视觉必然要隐藏input元素,这就直接导致调试的时候你点击的是label但是响应的是input,如果不仔细看样式表,完全不知道写了个啥

//这里的图片路径是假的,checked代表选中,defalut代表未选中
<img src='./checked.png' c-value='0' check='1'>默认选项1
<img src='./default.png' c-value='1' check='0'>默认选项2
<img src='./default.png' c-value='2' check='0'>默认选项3

<script>
    //把第一个复选框设置未false,如果觉得不够优雅可以不设置check属性
    $('img').eq(0).attr('src', './default.png').attr('check', '0')
    
    //所有都置为true,注意这里不能用attr,只能用prop
    $('img').attr('src', './checked.png').attr('check', '1')

    //使用属性选择器找出哪些被选中
    $('img[src="./checked.png"]')

    function getValue(){
          const cbs =  $('img').toArray();
          let value = '';
          for(let i=0; i<cbs.length; i++){

              if($(cbs[i]).attr('check') == '1'){
                  value += $(cbs[i]).attr('c-value') + ','
              }
          }
          return value;
    }
</script>

 如果有写错的地方,请各位多批评指正,如果有更好的想法也请提出来

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

free5156

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值