真的有2个问题。为什么这些代码不会对XHTML 1.0 Strict进行验证。 XHTML 1.0 Strict是项目要求。
第2行导致问题
文档类型不允许元素“输入”;缺少“p”,“h1”,“h2”,“h3”,“h4”,“h5”,“h6”,“div”,“pre”,“address”,“fieldset”,“ins”中的一个,“del”start-tag。
<form enctype="multipart/form-data" action="upload.php" method="post">
<input type="hidden" name="max_file_size" value="1048576" />
<table><tr><td><b>Image location: </b></td><td><input type="file" name="file" size="30"/></td></tr>
<tr><td><b>Caption: </b></td><td><input type="text" name="caption" size="30"/></td></tr>
<tr><td><input name="submit" type="submit" value="Upload" /></td><td>*(png, jpeg, jpg and gif files < 1mb)</td></tr></table>
</form>
对于第2行和第3行
文档类型不允许元素“输入”;缺少“p”,“h1”,“h2”,“h3”,“h4”,“h5”,“h6”,“div”,“pre”,“address”,“fieldset”,“ins”中的一个,“del”start-tag。
<form action="#">
<input type="text" size="30" name="query" value="" onkeypress="return disableEnterKey(event)" />
<input type="button" name="searchButton" value="Search" onclick="loadResults(this.form)" />
</form>
答案 0 :(得分:6)
您需要将表单输入放在&lt; fieldset&gt;中或其他块标记。 &LT;输入&GT;元素是内联表单元素,内联元素可能不会出现在块上下文中。尝试
<fieldset>
<input ... />
<fieldset>
答案 1 :(得分:5)
如消息所示,您不能将input元素作为表单的直接子元素。它必须包含在“p”,“h1”,“h2”,“h3”,“h4”,“h5”,“h6”,“div”,“pre”,“address”,“fieldset”中的一个中,“ins”,“del”。
最简单的修复可能是将它们放在“p”,“div”或“fieldset”元素中。
答案 2 :(得分:2)
XHTML strict要求您不要将输入元素直接放在表单中 - 您可以通过将输入放在验证器建议的任何块级元素中来修复错误。
尝试这样的事情:
<form action="#">
<div>
<input type="text" size="30" name="query" value="" onkeypress="return disableEnterKey(event)" />
<input type="button" name="searchButton" value="Search" onclick="loadResults(this.form)" />
</div>
</form>