2010-11-12 102 views
1

看不到我做错了什么?得到的数字是正确的?basic html:为什么我的标签不能检查我的复选框?

<fieldset> 
    <input type="checkbox" class="checkbox" name="187" /> 
    <label for="187">Easily accessible</label><br /> 
    <input type="checkbox" class="checkbox" name="311" /> 
    <label for="311">WiFi Internet</label><br /> 
    <input type="checkbox" class="checkbox" name="351" /> 
    <label for="351">Child friendly</label><br /> 
    <input type="checkbox" class="checkbox" name="352" /> 
    <label for="352">Pets welcome</label><br /> 
    <input type="checkbox" class="checkbox" name="353" /> 
    <label for="353">Pet free zone</label><br /> 
</fieldset> 
+0

如果你使用文本字符串而不是数字,它工作吗? – 2010-11-12 17:20:48

回答

7

我认为,对于标签的属性应指向一个元素的ID,而不是它的名字(想想的情况下,其中两个元素具有相同的名称)。 也就是说 使用

<input type="checkbox" class="checkbox" id="187" /> 
<label for="187">Easily accessible</label><br /> 
+4

尽管这在技术上是正确的答案('for'应指向'id'),这在语法上是无效的。在HTML中,用数字开始元素ID是非法的。它是否有效取决于网页浏览器的宽容程度。 – BalusC 2010-11-12 17:23:54

+0

谢谢吉姆,全部排序。 – Haroldo 2010-11-12 17:24:40

+0

@BalusC Ah不知道起始ID是错误的。 – Jim 2010-11-12 17:25:01

2
<input type="checkbox" class="checkbox" name="cb_187" id="cb_187" /> 
<label for="cb_187">Easily accessible</label> 
  1. 同时使用nameid属性(使用相同的值填充它们)。
  2. 不要使用数字开始名称或ID。
2

吉姆指出,在labelfor属性应指向上inputid属性。

另外,我宁愿只是包装标签内input和文本,像这样:

<label><input type="checkbox" class="checkbox" name="353" /> Pet free zone</label><br />

这样的话,你不必与forid渣土约。

0

你为什么不使用更简单的

<fieldset> 
    <label><input type="checkbox" class="checkbox" name="187" /> 
    Easily accessible</label> 
    ... 
</fieldset> 

更少的代码,也不需要定义一个复选框ID。要从复选框中空出文本标签,只需为input字段定义边距右侧。也给显示:块给标签,所以你甚至不需要<br>

相关问题