【问题标题】:IE9 form= attribute not workingIE9 表单 = 属性不起作用
【发布时间】:2013-03-15 08:51:56
【问题描述】:

我在一个复杂页面上有多个表单,其中的字段由相当多的中间 HTML 分隔。在 Firefox 和 chrome 中,我可以声明一个表单并关闭它,然后在要与表单关联的字段中放置一个 form="xxx" 属性。这在 IE9 中似乎不起作用。

这是一个简化的例子:

    <?php
if (isset($_POST["field1"])) echo "Field1: " . $_POST["field1"] . "<br>";
if (isset($_POST["Btn1"])) echo "Btn1: " . $_POST["Btn1"] . "<br>";
if (isset($_POST["Btn2"])) echo "Btn2: " . $_POST["Btn2"] . "<br>";
?>
<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>Test Page</title>
    <link rel="stylesheet" href="css/normalize.css" media="all">
    <!--[if lt IE 9]>
      <script src="js/html5shiv-printshiv.js" media="all"></script>
    <![endif]-->
  </head>
  <body>
    <form id="form1" action="Test.php" method="POST"></form>
    <input type="text" form="form1" id="field1" name="field1" value="text input">
    <button type="submit" form="form1" id="Btn1" name="Btn1" value="Btn1" title="Btn1">
      Btn1</button>
    <input type="submit" form="form1" id="Btn2" name="Btn2" value="Btn2" title="Btn2">
  </body>
</html>

我已经尝试添加 ...没有变化。

...其他人遇到过这个“功能”,我该如何解决?

【问题讨论】:

  • 那么你得到的错误到底是什么?即,所有表单元素都提交到 1 个表单?
  • 您的 HTML 无效。没有关闭 FORM 标记。
  • 不,我什么也得不到——就像 POST 从未发生过一样!
  • 是的 - 有一个结束表单标记(在开始表单标记的末尾。所有其他浏览器在 HTML5 中都接受这种样式。请注意,字段和按钮有一个 form="form1"属性。
  • 认真的吗?如果您在一页上有两个表单,表单如何知道哪些元素在 FORM-A 中而不在 FORM-B 中?

标签: html forms internet-explorer-9


【解决方案1】:

Microsoft’s info on support to HTML5 forms 中似乎没有任何关于支持form 属性的信息。快速测试表明即使 IE 10 也不支持它。

所以考虑简化结构。只要您不尝试重叠或嵌套表单,介入 HTML 应该不是问题。

【讨论】:

  • 几乎每次我去回答一些事情,我看到jukka已经回答了,我很高兴。充满了很好的回应,你是。
  • 你是对的,微软没有提到支持表单属性。然而,在 W3C 的 HTML5 规范(第 4.10.18 节)中提到了它。我已经在重新修改我的所有代码(大约 40 多页)以避免这种情况。
【解决方案2】:

form 属性是 HTML5 添加的。它不适用于太旧而无法支持 HTML5 的浏览器。

【讨论】:

  • 所以,您告诉我 IE9(可以在 Vista 上运行的最新版本)太旧,无法支持 HTML5。我猜 IE 远不及他们声称的 HTML5 兼容。
  • @user2093616:是的。尽管此支持概述未提及 form 属性,但您可以看到几乎所有 HTML5 表单功能都需要 IE 10:wufoo.com/html5
【解决方案3】:

你需要在字段之后关闭表单标签,它应该是这样的:

<form id="form1" action="Test.php" method="POST">
    <input type="text" form="form1" id="field1" name="field1" value="text input">
    <button type="submit" form="form1" id="Btn1" name="Btn1" value="Btn1" title="Btn1">
      Btn1</button>
    <input type="submit" form="form1" id="Btn2" name="Btn2" value="Btn2" title="Btn2">
</form>

还为每个字段添加标签以使表单易于访问。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-18
    • 1970-01-01
    • 2020-11-10
    • 1970-01-01
    • 2017-02-05
    • 1970-01-01
    相关资源
    最近更新 更多