如何仅用HTML、CSS、SCSS和Bootstrap4实现一键全选复选框
仅用HTML/CSS/Bootstrap4实现复选框恢复默认选中状态
你需要让多个默认选中的开关复选框,通过按钮一键恢复到全部选中的初始状态,且不能用JavaScript,这里可以利用HTML表单的原生reset功能来实现,完全符合你的技术栈要求,具体实现如下:
修改后的完整代码
HTML部分
<form> <div class="welcome-left-btn"> <label class="switch"> <input type="checkbox" name="chk" checked> <span class="slider round"></span> </label> </div> <div class="welcome-left-btn"> <label class="switch"> <input type="checkbox" name="chk" checked> <span class="slider round"></span> </label> </div> <button id="defaultbtn" class="btn" type="reset">恢复默认</button> </form>
CSS部分(保留你原有的样式,无需修改)
.switch { position: relative; display: inline-block; width: 40px; height: 23px; } .switch input { opacity: 0; width: 0; height: 0; } .slider { position: absolute; cursor: pointer; top: 0; left: 0; right: 0; bottom: 0; background-color: #ccc; -webkit-transition: .4s; transition: .4s; } .slider:before { position: absolute; content: ""; height: 19px; width: 19px; left: 2px; bottom: 2px; background-color: white; -webkit-transition: .4s; transition: .4s; } input:checked + .slider { background-color: #3861fb; } input:focus + .slider { box-shadow: 0 0 1px #3861fb; } input:checked + .slider:before { -webkit-transform: translateX(17px); -ms-transform: translateX(17px); transform: translateX(17px); } .slider.round { border-radius: 25px; } .slider.round:before { border-radius: 50%; }
关键修改说明
- 把所有复选框和按钮包裹在
<form>标签内:HTML表单的reset功能只会作用于表单内部的表单控件 - 将按钮的
type从submit改为reset:type="reset"的按钮点击后会自动把表单内所有控件恢复到初始状态,也就是你设置的checked默认选中状态 - 保留复选框的
checked属性:这是控件的初始状态,重置时会回到这个状态
这样无论你手动取消了多少个复选框,点击“恢复默认”按钮后,所有复选框都会立刻回到默认的选中状态,完全不需要JavaScript。
内容的提问来源于stack exchange,提问作者user19163646
相关产品推荐
相关产品推荐

