2010-11-12 92 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>

相關問題