基本的HTML:为什么我的标签不能检查我的复选框?

时间:2010-11-12 17:19:02

标签: html css

看不出我做错了什么?!!!必须是数字名称吗?

<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>

4 个答案:

答案 0 :(得分:7)

我认为label的for属性应该指向一个元素id而不是它的名字(想想两个元素具有相同名称的情况)。 即 使用

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

答案 1 :(得分:2)

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

答案 2 :(得分:2)

正如Jim指出的那样,for上的label属性应该指向id上的input属性。

或者,我更喜欢将input和文本包装在标签内,如下所示:

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

这样,您就不必使用forid进行捣乱。

答案 3 :(得分:0)

为什么不使用更简单的

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

更少代码,无需定义复选框ID。要从复选框中选中空格文本标签,只需为input字段定义边距。同时显示:阻止标签,因此您甚至不需要<br>