如何取消单选按钮的选中状态
1.常规用法
单选按钮通常用于用户在一组选项中选中某一项的场景中,一但用户选中其中一项,是不可以再次点击以取消选中的。
常见的写法有以下几种
无label的
<input type="radio" name="option" value="a" checked>选项A |
通过for关联
<input type="radio" id="optionA" name="option2" value="a" checked><label for="optionA">选项A</label> |
或是直接将input放到对应的label中
<label><input type="radio" name="option3" value="a" checked>选项A</label> |
2.取消选中
如果有需求需要允许用户将已经选中的单选按钮取消选中,这个需求其实并不是非常常见,但也算有实际的需求场景,还算合理
但是默认提供的单选按钮是无法取消选中的,那么只有通过相应的事件进行处理了
对于一组单选按钮,他们是相互关联的,选中其一,则其他的会取消选中;那么我们可以监听单选的click事件
如果
1.已经选中,那么设置元素的checked = false,取消选中
2.未选中,那么设置元素的checked = true, 选中;同组的其它单选元素的checked = false
但在实际处理中会发现,我们并不知道click前的状态,因为点击后,我们事件的e.target.checked都会为true,所以我们应该记录下click之前的状态
const radioEls = document.querySelectorAll('input[type=radio]') |