我在复杂页面上有多个表单,其中的字段由相当多的插入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>
我尝试过添加 &LT; meta http-equiv =“X-UA-Compatible”content =“IE = 9”&gt; ......没有变化。
......其他人遇到这个“功能”,我该如何解决?
答案 0 :(得分:3)
似乎没有关于Microsoft’s info on support to HTML5 forms中对form
属性的支持的任何信息。快速测试表明即使IE 10也不支持它。
因此,请考虑简化结构。干预HTML不应该是一个问题,只要您不试图重叠或嵌套表格。
答案 1 :(得分:0)
form
属性是HTML5的补充。它不适用于浏览器太旧而无法支持HTML5。
答案 2 :(得分:-1)
您需要在字段后关闭表单标记,它应如下所示:
<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>
为每个字段添加标签以使表单可访问。