1

这是我拥有的 HTML 验证器给我一个错误的代码:

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

这是 HTML Validator 中的错误屏幕截图全尺寸):

HTML Validator 中的错误屏幕截图。

这是我收到的错误消息:

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

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

在下面的示例中,<font> 标签是一个内联标签,它只能包含其他内联标签。但是 <p> 标签是块标签。所以 <p> 标签不能包含在 <font> 标签中。

这是它来自的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>
4

6 回答 6

10

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

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

于 2009-01-27T19:15:49.087 回答
1

您还没有提到该验证器针对哪个 HTML 版本进行验证。假设它不是 XTHML,输入标签不被关闭。“/>”的使用意味着您提供了一个结束标签。

欲了解更多信息:参考

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

于 2009-01-27T18:41:17.033 回答
0

我认为问题在于输入在一个<li>元素中,默认情况下它不是块级元素。这通常是这种“脱离上下文”错误的原因。它根本不会伤害您的页面,而只是阻止它进行验证。

于 2009-01-27T18:37:06.120 回答
0

您使用的是 HTML 还是 XHTML

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

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

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

于 2009-01-27T18:43:42.160 回答
0

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

于 2009-01-27T18:44:33.750 回答
0

例如。[代码]

[/代码]

将输入标签包装在一个

标签

并确保像上面一样自行关闭输入标签。

这应该验证。

标记

于 2009-04-16T05:08:09.997 回答