我刚刚通过w3c验证服务(http://validator.w3.org/check)运行了这个简单的代码。这是我正在运行的代码:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd"
>
<html lang="en">
<head>
<title><!-- Insert your title here --></title>
</head>
<body>
<form name="testform" action="/" method="post">
<input type="text" name="testfield">
</form>
</body>
</html>
我在输入字段上收到以下错误:
第10行,第40栏:文件类型 这里不允许元素“INPUT”; 缺少“P”,“H1”,“H2”,“H3”之一, “H4”,“H5”,“H6”,“PRE”,“DIV”, “ADDRESS”开始标记
我认为没有任何问题。有什么想法吗?
答案 0 :(得分:6)
问题在于如何在DTD中定义FORM
元素:
<!ELEMENT FORM - - (%block;|SCRIPT)+ -(FORM) -- interactive form -->
因此,它可以有%block
(FORM
)或SCRIPT
元素除外。
%block
定义为:
<!ENTITY % block
"P | %heading; | %list; | %preformatted; | DL | DIV | NOSCRIPT |
BLOCKQUOTE | FORM | HR | TABLE | FIELDSET | ADDRESS">
其余的:
<!ENTITY % heading "H1|H2|H3|H4|H5|H6">
<!ENTITY % list "UL | OL">
<!ENTITY % preformatted "PRE">
由于您的表单不包含任何直接子项,因此页面验证失败。
答案 1 :(得分:1)
稍微玩了一下 - 在“输入”标签周围加上“div”标签:
<div>
<input type="text" name="testfield">
</div>