Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/451.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/go/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 可以将标签与复选框关联,而无需使用;对于=id";?_Javascript_Jquery_Html_Css_Checkbox - Fatal编程技术网

Javascript 可以将标签与复选框关联,而无需使用;对于=id";?

Javascript 可以将标签与复选框关联,而无需使用;对于=id";?,javascript,jquery,html,css,checkbox,Javascript,Jquery,Html,Css,Checkbox,我知道有时最好将标签与复选框关联: <input id="something" type="checkbox" value="somevalue" /> <label for="something">this is label text</label> 这是标签文本 …但我必须使用id来关联它吗? 我之所以关心这个问题,主要是因为我喜欢点击标签来切换复选框的值,但不喜欢用id来做这么简单的事情 我想我可以使用jQuery切换单击标签的上一个元素(复选框)

我知道有时最好将标签与复选框关联:

<input id="something" type="checkbox" value="somevalue" />
<label for="something">this is label text</label>

这是标签文本
…但我必须使用id来关联它吗?
我之所以关心这个问题,主要是因为我喜欢点击标签来切换复选框的值,但不喜欢用id来做这么简单的事情


我想我可以使用jQuery切换单击标签的上一个元素(复选框),但可能我缺少了一些更简单的东西。看起来像一个解决方案,但用户说它在IE中不起作用。

是的,将输入放在标签内

<label><input type=checkbox name=chkbx1> Label here</label>
标签在这里
请参见HTML规范中的

这是标签文本
<label for="something">this is label text</label>
<input id="something" type="checkbox" value="somevalue" />
实际上,“for”属性用于残疾人的屏幕阅读器,因此在没有“for”属性的情况下编写“accessibility”是没有用的

.c-custom-checkbox{
左侧填充:20px;
位置:相对位置;
光标:指针;
}
.c-自定义-复选框输入[类型=复选框]{
位置:绝对位置;
不透明度:0;
溢出:隐藏;
剪辑:rect(0);
高度:15px;
宽度:15px;
填充:0;
边界:0;
左:0;
}
.c-custom-checkbox.c-custom-checkbox\u img{
显示:内联;
位置:绝对位置;
左:0;
宽度:15px;
高度:15px;
背景图像:无;
背景色:#fff;
颜色:#000;
边框:1px实心#333;
边界半径:3px;
光标:指针;
}
.c-custom-checkbox输入[类型=复选框]:选中+.c-custom-checkbox\uu img{
背景位置:0;
背景色:番茄;
}

一些标签

+1最佳解决方案-有关详细信息,请参阅HTML规范。这在IE中有效吗?建议不要模仿(根据规范):请注意,当表格用于布局时,标签在一个单元格中,其关联控件在另一个单元格中,不能使用此技术。IE开始在IE 7中支持此功能。它可以工作!我打开IE9,使用F12开发工具测试IE7/8/9浏览器和文档模式。很好。万岁!我再也没有身份证了。谢谢大家使用标签内的输入不会弄乱屏幕阅读器,除非它们写得很糟糕。这是一个非常简单的解析案例。@JoaoCarlos From:“HTML和XHTML规范允许隐式和显式标签。但是,一些辅助技术不能正确处理隐式标签(例如,名字)。”但不确定这是否仍然是现代浏览器+屏幕阅读器的问题。