递归地使用 AJAX 或将所有数据收集到一个表单中并提交该表单。
一个简单的表单提交将在第一个实例中重定向您的页面,而第二个实例中的数据将丢失。如果您可以完全控制服务器端,那么您可以只提交带有 POST 数据的表单(在我的示例中),并且您可以在提交之前将form2
GET 应用于action属性。
我是说:
<form name="form1" id="form1" action="index.php" method="GET">
<input type="text" name="foo" value="bar" />
<input type="submit" value="Submit" />
</form>
<form name="form2" id="form2" action="index.php" method="POST">
<input type="text" name="foo" value="bar" />
</form>
<script type="text/javascript">
var f = document.getElementById('form1');
f.onsubmit = function() {
var t = f.getElementsByTagName('input'),
l = t.length,
i = 0,
r = [];
for (i = 0; i < l; i++) {
if (!t[i].name) continue;
r.push(t[i].name + '=' + encodeURIComponent(t[i].value));
}
var p = document.getElementById('form2');
if (r.length) p.action += '?' + r.join('&');
p.submit();
return false;
}
</script>
但是 AJAX 是一个更好、更优雅的解决方案,它可以在需要时使用新功能轻松扩展,所以我投票支持异步方式。