如何在HTML中根据数据库的1或0值设置复选框选中状态?
解决仅HTML封闭系统中根据数据库1/0设置Checkbox选中状态的问题
核心规则
HTML里的checkbox的checked是布尔属性:
- 只要标签内存在
checked属性,无论属性值是什么(哪怕是checked="0"或checked="false"),checkbox都会被选中 - 只有完全不写
checked属性,checkbox才处于未选中状态
你之前写法的问题
- 第一种:
<input type="checkbox" value="1" /> checkedchecked写在标签外面,不是合法的HTML属性,浏览器完全不会识别 - 第二种:
<input type="checkbox" value="0" /> uncheckedunchecked不是HTML的合法属性,写了没有任何作用 - 第三种:
<input type="checkbox" checked="1" /> checked
理论上只要存在checked属性就会选中,但如果系统没生效,大概率是模板没有正确根据数据库值输出该属性(比如不管值是1还是0都固定输出了?) - 第四种:
<input type="checkbox" checked="0" /> unchecked
因为checked属性存在,浏览器会强制选中checkbox,和你想要的未选中效果完全相反
正确写法
根据数据库返回的1/0,动态生成对应的HTML:
- 当返回1(需要选中):
(value可根据需求保留,也可简化为<input type="checkbox" value="1" checked><input type="checkbox" checked>) - 当返回0(不需要选中):
(完全不写<input type="checkbox" value="0">checked属性)
内容的提问来源于stack exchange,提问作者Stanley Tan
相关产品推荐
相关产品推荐

