2011-02-28 380 views
11

「標籤元素的for屬性必須引用表單控件。」html5驗證表單標記

老實說,我不明白標記有什麼問題。我已經瀏覽了W3網站的很多內容,但無法得到它。

幫助?

HTML:

<form action="process.php" method="post"> 
    <div> 
     <label for="name">Name</label><br /> 
     <input type="text" value="" name="name" /> 
    </div> 
    <div> 
     <label for="email">E-mail</label><br /> 
     <input type="text" value="" name="email" /> 
    </div> 
    <div> 
     <label for="message">Message</label><br /> 
     <textarea name="message" cols="30" rows="4"></textarea> 
    </div> 
    <div> 
     <input type="checkbox" value="yes" name="newsletter" /> 
     <label for="newsletter">Subscribe to newsletter</label> 
    </div> 
    <div> 
     <input type="submit" value="Submit" name="subscribe" /> 
    </div> 
</form> 
+0

只是好奇:你怎麼知道你有問題?您的表單無法驗證? – 2011-08-09 14:56:35

+0

是的,先生!我總是驗證我的網頁......並且很好地處理黑客和奇怪的事情。 – technopeasant 2011-08-10 19:10:19

回答

18

你缺少id屬性。

因此,要解決這個問題,比如:

<input type="text" value="" name="email" id="email" /> 

就是這樣。 Linky.

+0

從4個錯誤到13個。拿出了一些要素逐個找出它們。這裏只是「名稱」輸入的驗證。 http://cl.ly/2L0Q15020N0723180h1V – technopeasant 2011-02-28 02:33:10

+1

你應該把'id'屬性放在'input'上,而不是'label'。查看我通過驗證器鏈接到的示例頁面:http://jsbin.com/alake4/edit另外,您不希望啓用「value」屬性(或「type =」text「')標籤標籤。 – thirtydot 2011-02-28 02:36:27

+0

啊!我懂了。我錯了。謝謝您的幫助! – technopeasant 2011-02-28 02:39:38

8

Thirtydot是正確的;在你的表單中有一個低位標識。我已經添加了所有。 選中此項:

<form action="process.php" method="post"> 
    <div> 
     <label for="name">Name</label><br /> 
     <input type="text" id="name" value="" name="name" /> 
    </div> 
    <div> 
     <label for="email">E-mail</label><br /> 
     <input type="text" id="email" value="" name="email" /> 
    </div> 
    <div> 
     <label for="message">Message</label><br /> 
     <textarea name="message" id="message" cols="30" rows="4"></textarea> 
    </div> 
    <div> 
     <input type="checkbox" id="newsletter" value="yes" name="newsletter" /> 
     <label for="newsletter">Subscribe to newsletter</label> 
    </div> 
    <div> 
     <input type="submit" value="Submit" name="subscribe" /> 
    </div> 
</form>