更新时间:2023-11-09 20:49:16
这个答案适用于XHTML,而不是HTML5。 b
$ b
所以做一些类似于form和body元素只接受
块级别的子元素< form action =/>
...将
< input type =submit> < / form>
产生错误:文档类型不允许元素
输入这里;缺少p,
h1,h2,h3,h4,h5,h6,
div,pre,address ,fieldset,
ins,delstart-tag。
$ b在(X)HTML的严格变体中,
元素可能只有块元素
作为其子元素,但表单控件
(例如输入元素)是内联
元素。解决方案是选择一个
块元素,并使用适当的
语义可能包含内联
元素;有用的验证器
产生一个列表,可以帮助你减少
的范围。当涉及到一个表单时,适当的
元素通常是字段设置或
普通div。
< form action =form.phpmethod =post>
< fieldset>
< input type =text/>
< / fieldset>
< / form>
可以解决您的问题。
I got this error when validating my page with w3c's validator.
Source:
<form action="form.php" method="post">
<input type="text"/>
</form>
Can someone show me why I may have gotten this error? Thanks in advance!
This answer applies to XHTML, not HTML5.
The form and body element only accept block level children
<form action="/"> <input type="submit"> </form>
… will produce the error:document type does not allow element "input" here; missing one of "p", "h1", "h2", "h3", "h4", "h5", "h6", "div", "pre", "address", "fieldset", "ins", "del" start-tag.
In Strict variants of (X)HTML, a form element may have only block elements as its children, but form controls (such as input elements) are inline elements. The solution is to pick a block element with appropriate semantics that may contain inline elements; helpfully the validator produces a list that can help you narrow it down.
When it comes to a form, appropriate elements are usually fieldset or a plain div.
So doing something like
<form action="form.php" method="post">
<fieldset>
<input type="text"/>
</fieldset>
</form>
will solve your problem.