2011-02-28 130 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>