单选框_简单样式的单选框&多选框

本文介绍了如何使用HTML、CSS和JS创建具有简单样式的单选框和多选框,并提供了相应的代码示例。还提到了在处理label与checkbox点击事件时可能出现的触发两次问题,并给出了解决方案参考。
摘要由CSDN通过智能技术生成

fa21434bad0b5ab47f695cb329034e67.png
业务中时常需要我们根据不同场景做出不同样式的单选框&多选框,下面简单写两个。

单选框

366bf341aaf6e78f83d4ffddf90d0629.png
方块单选框

html

 //html

  <div class="group">
    <label class="active">
        <input type="radio" checked=true name="parent_radio" value="积分商城搭建"/>
        积分商城搭建</label>
    <label>
        <input type="radio" name="parent_radio" value="积分礼品供应"/>
        积分礼品供应</label>
    <label>
        <input type="radio" name="parent_radio" value="积分商城代运营"/>
        积分商城代运营</label>
    <label>
        <input type="radio" name="parent_radio" value="其他定制需求"/>
        其他定制需求</label>
</div>

css

//css

/* 单选框 */
input[type="radio"] {
    /*取消自带按钮*/
    color:gray;
    display: none;
}
 
.group>label{
    /*未选中状态*/
    float: left;
    color: #333333;
    font-size: 13px;
    padding: 7px 14px;
    border: 1px solid #333333;
    margin-right: 15px;
    margin-bottom: 15px;
    font-weight: Medium;
}
.group>label.active{
    /*选中状态*/
    color: #1770E6;
    font-size: 13px;
    padding: 7px 14px;
    border: 1px solid #1770E6;
    font-weight: Medium;
}

js

//js

//input单选框
  var demand_str = $('input:radio:checked').val()
  console.log(demand_str)
  $(".group label").click(function () {
      var index = $(this).index();
       $(".group label").removeClass("active"), 
       $(".group label").eq(index).addClass("active")
})

   $(".group input").click(function () {
      var index = $(this).index();
      demand_str = $('input:radio:checked').val(); //获取单选的值有三种写法
      // demand_str = $("input[type='radio']:checked").val();
      // demand_str = $("input[name='parent_radio']:checked").val();
      console.log(demand_str)
})

单选框-demo

多选框

cc3d7eb7c61559b67f37e0293c9069a0.png
方块多选框

html

//html

 <div class="group">

    <label class="active">
        <input type="checkbox" checked=true name="parent_checkbox" value="积分商城搭建"/>
        积分商城搭建</label>
    <label>
        <input type="checkbox" name="parent_checkbox" value="积分礼品供应"/>
        积分礼品供应</label>
    <label>
        <input type="checkbox" name="parent_checkbox" value="积分商城代运营"/>
        积分商城代运营</label>
    <label>
        <input type="checkbox" name="parent_checkbox" value="其他定制需求"/>
        其他定制需求</label>
</div>

css

//css

/* 单选框 */
input[type="checkbox"] {
    /*取消自带按钮*/
    color:gray;
    display: none;
}
 
.group>label{
    /*未选中状态*/
    float: left;
    color: #333333;
    font-size: 13px;
    padding: 7px 14px;
    border: 1px solid #333333;
    margin-right: 15px;
    margin-bottom: 15px;
    font-weight: Medium;
}
.group>label.active{
    /*选中状态*/
    color: #1770E6;
    font-size: 13px;
    padding: 7px 14px;
    border: 1px solid #1770E6;
    font-weight: Medium;
}

js

//js

//input单选框
  $(".group label").click(function (event) {
      var index = $(this).index();
          if($(event.target).is('input')){//对点击目标元素做判断,防止事件再次冒泡
        return;
      }
       if($(".group label").eq(index).hasClass("active")){
               $(".group label").eq(index).removeClass("active")
       }else{
               $(".group label").eq(index).addClass("active")
       }
  })

   $(".group input").click(function () {
      var index = $(this).index();
      var chk_value =[];//定义一个数组    
            $('input[name="parent_checkbox"]:checked').each(function(){//遍历每一个名字为interest的复选框,其中选中的执行函数    
            chk_value.push($(this).val());//将选中的值添加到数组chk_value中    
            });  
     console.log(chk_value)
     
})

多选框-demo

注意:

解决label 和checkbox点击事件触发两次问题,参考下方文章

解决label 和checkbox点击事件触发两次问题​www.jianshu.com
972f60bc43a1cb406b2280e31f0e4668.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值