HTML Validator在表单输入类型上给出错误,上下文中不允许使用该元素

时间:2009-01-27 18:29:08

标签: html w3c-validation

这是我在HTML Validator上给出错误的代码:

<input type="text" id="search" name="keywords" />
<input type="submit" value="Search" name="Submit" />

以下是HTML Validator中错误的屏幕截图full size):

Screen shot of error in HTML Validator.

这是我收到的错误消息:

  

上述元素不允许出现在您放置它的上下文中;其他提到的元素是唯一允许存在的元素,并且可以包含所提到的元素。这可能意味着您需要一个包含元素,或者您可能忘记关闭前一个元素。

     

HTML文件正文中有两种类型的元素:内联元素和块元素。此消息的一个可能原因是您尝试将块级元素(例如“&lt; p&gt;”或“&lt; table&gt;”)放入内联元素(例如“&lt; a&gt;”,“ &lt; span&gt;“或”&lt; font&gt;“)。

     

在以下示例中,&lt; font&gt; tag是内联标记,只能包含其他内联标记。但是&lt; p&gt; tag是块标记。所以&lt; p&gt;标签不能包含在&lt; font&gt;中标签

这是html的块,来自:

<li>
    <form method="post" action="http://site.com/"  >
    <div class='hiddenFields'>
        <input type="hidden" name="ACT" value="19" />
        <input type="hidden" name="XID" value="90ee0994104d8ba87b6ef9b43e998fc8c89e0d9f" />
        <input type="hidden" name="RP" value="search/results" />
        <input type="hidden" name="NRP" value="" />
        <input type="hidden" name="RES" value="" />
        <input type="hidden" name="status" value="" />
        <input type="hidden" name="weblog" value="forms|alumni_distinguished|housing_faq|international_faq" />
        <input type="hidden" name="search_in" value="everywhere" />
        <input type="hidden" name="where" value="all" />
        <input type="hidden" name="site_id" value="1" />
    </div>

    <input type="text" id="search" name="keywords" /> <input type="submit" value="Search" name="Submit" />
    </form>
</li>

6 个答案:

答案 0 :(得分:10)

在HTML4 / XHTML1中,您无法将内联内容直接放入form元素中。另一方面,HTML5提升了这一要求。

因此,如果验证错误困扰您(有更糟糕的事情......),请在最后两个p周围添加divinput元素。

答案 1 :(得分:1)

您尚未提及此验证程序验证的HTML版本。假设它不是XTHML,则不关闭输入标记。使用“/&gt;”暗示您正在提供结束标记。

有关详细信息:Reference

但是,对于要求关闭所有标记的XHTML,此限制不适用。 (或者我应该说所有标签应该关闭的限制仅适用于XHTML); - )

答案 2 :(得分:0)

我认为问题在于输入位于<li>元素中,默认情况下不是block-level element。这通常是导致此类“上下文”错误的原因。它根本不会伤害你的页面,只是不让它验证。

答案 3 :(得分:0)

您使用的是HTML还是XHTML

  

在HTML中,<input>标记没有结束   标签

     

在XHTML中,<input>标记必须是   正确关闭。

http://www.w3schools.com/tags/tag_input.asp

答案 4 :(得分:0)

在您提供的代码之前是否有未闭合的内联元素?内联元素列表:http://htmlhelp.com/reference/html40/inline.html(对于html4)

答案 5 :(得分:0)

例如。 [代码]

[/代码]

将输入标记包装在

标记

中,并确保自动关闭输入标记,如上所述。

这应该验证。

标记