【问题标题】:Invalid location of HTML tagHTML 标记的位置无效
【发布时间】:2015-04-06 09:04:06
【问题描述】:

我正在尝试使用 HTML 和 Servlet 制作一个简单的表单。一切都设置好了,但我的 HTML 标记中出现了黄色下划线。它说: Invalid location of tag (input) ,我试图在我的 HTML 中实现表单。

我的代码看起来不错,但我没有发现问题。我做错了什么?

<!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">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <link rel="stylesheet" type="text/css" href="style.css" />
    <title>Projektuppgift1</title>
</head>
<body>
    ...
    // This is where I am getting the error
    <form action="LoginServlet" method="post">
        username: <input type="text" name="name" />
        password: <input type="password" name="password" />
        <input type="submit" value="submit" />
    </form>
    ...
</body>
</html>

【问题讨论】:

  • 只是为了确定。这部分是在、标签中的标签之后吗?
  • body 标记和 html 结束标记丢失^^,提示:对于干净的 html,还请使用 作为输入...
  • 无论如何,你为什么要使用 xhtml strict? 2015 年没有人真正使用过它(除了 fefe)和它的 html5...为未来而不是昨天构建代码...
  • 我认为他使用它是因为它是 JSP 的默认设置,因为它严重依赖 XML。 (不过还是个坏主意)
  • 哦,我没有看到 jsp 标签。应该升级到 JSF 2.2 以支持 html5 并使用组件而不是普通的 html。

标签: java javascript html


【解决方案1】:

form 标签只能包含块元素是 XHTML 严格的,所以 &lt;span&gt;&lt;input&gt; 都无效。不过你可以用&lt;div&gt; 包裹它,那就没问题了。

例如:

<form action="LoginServlet" method="post">
    <div>Username: <input type="text" name="name" /></div>
    <div>Password: <input type="password" name="password" /></div>
    <div><input type="submit" value="submit" /></div>
</form>

但是我建议不要使用 XHTML,它已成为过去,并且也有一些严重的缺点(例如 IE8 根本不支持它,不幸的是有些人仍然不得不使用它)。你应该使用 HTML5,它也有一个 XML 序列化。

【讨论】:

  • xhtml strict 是 2004 年……我们是 2015 年的 html5,您应该在表单中使用
  • 在使用 XHTML 时,IE 没有问题除非您使用 XML 内容类型提供 XHTML 文档(很少这样做,而且很少有任何好的理由)。此外,XML 序列化中的 HTML5 (一个版本)XHTML。
猜你喜欢
相关资源
最近更新 更多
热门标签