2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > html自定义修改单选框多选框样式以及获取选中的值

html自定义修改单选框多选框样式以及获取选中的值

时间:2023-04-16 22:48:03

相关推荐

html自定义修改单选框多选框样式以及获取选中的值

如何定义一个单选框

<input type="radio" name="sex" id="male" value="1" />

定义type,一组单选框的name值是相同的,定义id可以让label标签指向这个元素,value是我们赋予这个单选框我们需要的值

单选框是有默认样式的无法被修改,只能将他隐藏通过label标签来模拟新的样式

代码如下:

<style>

input[type='radio'][name='sex']{display: none;}/* 隐藏默认单选框用label来模拟 */

input[type='radio'][name='sex']+label:after{/* 给label标签添加自定义样式 */

content: '';

display: inline-block;

margin-left: 10px;

width: 10px;

height: 10px;

border: 1px solid #0000CC;

}

input[type='radio'][name='sex']:checked+label:after{background-color: #0000CC;}/* 选中样式 */

</style>

<section>这里是单选框</section>

<input type="radio" name="sex" id="male" value="1" />

<label for="male">男</label>

<br />

<input type="radio" name="sex" id="female" value="0" />

<label for="female">女</label>

获取选中的单选框的值:

document.querySelector("input[type=radio][name=sex]:checked").value

多选框也是同理,下面将完整操作单选框和多选框代码贴出来

<!DOCTYPE html><html><head><meta charset="utf-8"><title></title></head><body><div><style>input[type='radio'][name='sex']{display: none;}/* 隐藏默认单选框用label来模拟 */input[type='radio'][name='sex']+label:after{/* 给label标签添加自定义样式 */content: '';display: inline-block;margin-left: 10px;width: 10px;height: 10px;border: 1px solid #0000CC;}input[type='radio'][name='sex']:checked+label:after{background-color: #0000CC;}/* 选中样式 */</style><section>这里是单选框</section><input type="radio" name="sex" id="male" value="1" /><label for="male">男</label><br /><input type="radio" name="sex" id="female" value="0" /><label for="female">女</label><button onclick='alert(document.querySelector("input[type=radio][name=sex]:checked")?document.querySelector("input[type=radio][name=sex]:checked").value:"你还没有选择")'>获取选中的值</button></div><div><style>input[type='checkbox'][name='hobby']{display: none;}/* 隐藏默认多选框用label来模拟 */input[type='checkbox'][name='hobby']+label:after{content: '';display: inline-block;margin-left: 10px;width: 10px;height: 10px;border: 1px solid #0000CC;}input[type='checkbox'][name='hobby']:checked+label:after{background-color: #0000CC;}/* 选中样式 */</style><section>这里是多选框</section><input type="checkbox" name="hobby" id="basketball" value="我爱打篮球" /><label for="basketball">篮球</label><br /><input type="checkbox" name="hobby" id="swim" value="我爱游泳" /><label for="swim">游泳</label><br /><input type="checkbox" name="hobby" id="book" value="我爱看书" /><label for="book">看书</label><!-- 与单选框的处理几乎一样,只是取数据的时候多做一些处理 --><!-- 判断是否获取到checked的多选框时,querySelector无值时返回null,视为false,querySelectorAll返回空数组[],视为true,前者做判断更方便 --><!-- 逻辑:将选中的值放到一个字符串中(也可以是数组),获取到选中多选框元素时用forEach循环把值拼起来,forEach本身无返回值即undefined,所以用|| --><button onclick='myHobby="";alert(document.querySelector("input[type=checkbox][name=hobby]:checked")?document.querySelectorAll("input[type=checkbox][name=hobby]:checked").forEach(item=>myHobby+=item.value+",")||window.myHobby:"你还没有选择")'>获取选中的值</button></div></body></html>

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。