【发布时间】: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