XHTML严格验证

Dun*_*can 5 html forms validation xhtml

真的2个问题.为什么这些代码不会对XHTML 1.0 Strict进行验证.XHTML 1.0 Strict是项目要求.

第2行导致问题

文档类型不允许元素"输入"; 缺少"p","h1","h2","h3","h4","h5","h6","div","pre","address","fieldset","ins"中的一个,"del"开始标记.

<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 &lt; 1mb)</td></tr></table>
</form>
Run Code Online (Sandbox Code Playgroud)

对于第2和第3行

文档类型不允许元素"输入"; 缺少"p","h1","h2","h3","h4","h5","h6","div","pre","address","fieldset","ins"中的一个,"del"开始标记.

<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>
Run Code Online (Sandbox Code Playgroud)

Joh*_*lla 6

您需要将表单输入放在<fieldset>或其他块标记中.<input>元素是内联表单元素,内联元素可能不会出现在块上下文中.尝试

<fieldset>
   <input ... />
<fieldset>
Run Code Online (Sandbox Code Playgroud)

  • 这就是为什么它说"或其他块标签" (2认同)

And*_*ume 5

如消息所示,您不能将input元素作为表单的直接子元素.它必须包含在"p","h1","h2","h3","h4","h5","h6","div","pre","address","fieldset"中的一个中,"ins","del".

最简单的修复可能是将它们放在"p","div"或"fieldset"元素中.