首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >为什么不将嵌套在p中的表单验证为XHTML

为什么不将嵌套在p中的表单验证为XHTML
EN

Stack Overflow用户
提问于 2009-06-20 17:13:19
回答 4查看 14.8K关注 0票数 32

以下面的XHTML片段为例:

代码语言:javascript
复制
<!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>A webpage</title>
</head>
<body>
  <p>
    <form action="something.php" method="get">
      <input type="submit" value="Hello"/>
    </form>
  </p>
</body>
</html>

树应该是有效的,但是这不能在浏览器中正确解析。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2009-06-20 17:18:53

查看在http://validator.w3.org中尝试执行此操作时收到的错误消息

除了警告您没有指定字符编码(因此假定使用UTF-8)之外,主要的错误是<p>不允许包含非内联内容。您可以完全删除<p></p>,也可以在<form>中移动它们。

至于“为什么”,这是因为它是在定义什么是有效的XHTML和什么是无效的XHTML的模式中定义的。如果你查看this section of the XHTML definition,你会发现<p>只被允许包含文本或“内联”(而不是“块”)标签。然而,被算作“块”内容,而不是“内联”内容。

换句话说,表单可以包含段落,但段落不能包含表单。

票数 62
EN

Stack Overflow用户

发布于 2009-06-20 17:18:15

尝试使用W3C Markup Validator,它将告诉您大多数(X)HTML和CSS文档的无效内容。

票数 -1
EN

Stack Overflow用户

发布于 2009-06-20 17:17:29

你不能把form放在段落里面。像这样写:

代码语言:javascript
复制
<body>
  <form action="something.php" method="get">
  <p>
    <input type="submit" value="Hello"/>
  </p>
  </form>
</body>
票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1022041

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档