为什么W3C验证服务会说这是无效的XHTML?
有人能告诉我为什么W3C验证服务说这段代码无效吗为什么W3C验证服务会说这是无效的XHTML?,html,forms,input,validation,Html,Forms,Input,Validation,有人能告诉我为什么W3C验证服务说这段代码无效吗 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <title>this is
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>this is the title of the web page</title>
</head>
<body>
<form action="formscript.php" method="post">
first name:<input type="text" name="firstname" />
<input type="submit" />
</form>
</body>
</html>
这是网页的标题
名字:
我尝试了这两种代码,验证器说问题代码作为XHTML 1.0是有效的
无论如何,这里的问题是您的
中没有
,而文本
中没有
名字:
不要忘记
DOCTYPE
如果在开始时添加了XHTML1.0过渡文档类型声明,则最初发布的标记将生成有效的XHTML1.0过渡文档
正如@adamjansch编辑的那样,使用XHTML1.0严格文档类型声明,它是无效的,可能是使用该文档类型声明验证的。然后,第一条错误消息是“此处不允许使用字符数据”,并解释了可能的原因,包括“将文本直接放入文档正文,而不将其包装在容器元素中(例如aragraph
)”。这很接近:问题是在XHTML1.0Strict中,表单
元素可能只有块级子元素
这意味着任何文本和文本级标记,如input
,都必须包装在一个或多个块容器中,如p
、div
、字段集
、或表
。其中,div
是唯一中性的,对渲染没有默认影响:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>this is the title of the web page</title>
</head>
<body>
<form action="formscript.php" method="post">
<div>
first name:<input type="text" name="firstname" />
<input type="submit" />
</div>
</form>
</body>
</html>
这是网页的标题
名字:
您能更新您的问题并指出验证器给您的错误吗?标签
元素虽然有用,但与验证问题无关。而fieldset
只是可能的块级包装之一。如果使用,则需要“图例”子元素。您提出的解决方案中还存在其他标记错误(其中一些错误在原始解决方案中不存在),您可以通过尝试验证代码看到这一点。