
checkbox的value和checked属性详解
发布日期:2021-05-06 19:51:15
浏览次数:16
分类:技术文章
本文共 1389 字,大约阅读时间需要 4 分钟。
一 、checked属性
checked属性代表的是当前checkbox是否被选中,如果选中返回true,未选中返回false。和value值无关。
I have a car
document.getElementById("checkbox1").checked
知识点:
-
checked只代表页面刷新时,checkbox处于选中状态。checked的属性返回true;
此时,点击checkbox使其处于非选中状态,html代码没有变化(checked依然源码上)。但checked的属性返回false; -
html中出现checked字样,代表刷后新选,和checked=“任意值”无关。哪怕checked=“false”,刷新时,checkbox仍然是选中状态。可以理解为checked之后的属性值都是没意义的。
结论:
- html中checked意味着页面加载时,让该checkbox元素的checked属性为true,页面显示选中状态。
- 在提交表单时判断表单是否选中的标准是document.getElementById(“checkbox1”).checked返回true还是false。和html页面内容无关。
二 、value属性
I have a car
alert(document.getElementById("checkbox1").value);
value的属性代表checkbox提交给表单的值。
- value如果没有设置,则默认value的值是“on”。如果设置,自然value就是设置的值。
- value的值和表单是否选中无关。 无论表单是否选中,checkbox的值都是一样的。 ※这个点是包括我在内很多人都有误解。
三、表单提交对checkbox处理
请问下面这个表单提交后,提交的name和value是什么呢?
I have a car
答案是不确定
解释:
要点1: 当checkbox处于选中状态时,该checkbox的数据才会被提交。否则,数据不提交。
什么叫做选中状态? 唯一准确的答案是document.getElementById(“checkbox1”).checked返回true; 我已经解释过,html的checked只代表刷新后的状态,不代表提交时的状态。 我如果通过js把该属性设置成false,有的浏览器看到的还是打对号选中的状态。实际checked属性是false。要点2: 表单提交的value是value属性的值。默认是“on”,否则是设置值。无论是否勾选都是一个值。
总结:
上面的表单,如果处于选中状态,提交给server的name-value是"vehicle=on".
如果是非选中状态,提交的是空,也就是不提交该数据。四、实际工作中遇到的问题:
checkbox未选中状态,表单的数据没有提交到后台。
预期checkbox选中提交1,未选中提交0。但发现数据库没有更新,通过以上明白了为什么。解决方法:
在表单提交前,扫描所有的checkbox状态,如果checkbox是checked=true。
把value设置为1.。如果checkbox=false,把value设置为0.具体代码,大家可以百度,有很多人遇到类似问题。解决方法可以有很多种,重点是理解了chebox的原理是什么。
发表评论
最新留言
路过按个爪印,很不错,赞一个!
[***.219.124.196]2025年04月03日 03时31分33秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
【今日CV 计算机视觉论文速览 第97期】Tue, 9 Apr 2019
2019-03-01
第1讲 快速入门 《Kotlin 极简教程 》
2019-03-01
云计算-大数据-云安全高等教育改革示范教材
2019-03-01
使用MaxCompute进行数据质量核查
2019-03-01
Java语言特点与学习
2019-03-01
夜光精讲 Opentcs 三大算法(十三)调度算法
2019-03-01
BCGControlBar教程:应用向导
2019-03-01
MyEclipse教程:Web开发——部署并测试项目
2019-03-01
【更新】CLion v2018.3发布(六):VCS和插件
2019-03-01
文件服务器——src文件夹
2019-03-01
从零构建通讯器--5.2三次握手,telnet,wireshark
2019-03-01
如何判断两个浮点数是否相等?
2019-03-01
2021牛客寒假算法基础集训营3
2019-03-01
苹果进军搜索,背后藏着什么“阳谋”?
2019-03-01
egg:如何在控制器中拿到前端传的参数
2019-03-01
MVC之修改
2019-03-01
struct 模块
2019-03-01
python之集合类型内置方法
2019-03-01