我有一个带有文本字段数组的表单。用户(通过 javascript)可以向表单添加任意数量的文本字段。提交表单并按下后退按钮后,表单仅显示第一次呈现时原始表单上的字段(任何添加的文本字段都将丢失)。允许后退按钮以用户提交表单时的状态呈现表单的最佳方法是什么?欢迎任何想法,我尝试过的一些事情是:
- 将表单数据放入 cookie 中(由于几个原因,这不太好用,但对我来说最大的杀手是 cookie 的大小限制为 4K)
- 将表单数据放入会话中
- 通过 AJAX 提交表单,然后管理历史记录
谢谢您的帮助。我已经在我的网站http://fishtale.org/formtest/f1.php上发布了一份测试表格。这里还有一个简单的表格,展示了我提到的行为:
<form action="f2.php" method="post">
<input type="text" name="text[]" id="text1"/>
<input type="submit" name="saveaction" value="submit form" />
</form>
<a href="f2.php" id="add_element">Add Form Element</a>
<script type="text/javascript"
src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.1/jquery.min.js" ></script>
<script type="text/javascript" >
$('#add_element').click(function (event) {
event.preventDefault();
$('#text1').after('<input type="text" name="text[]" />');
});
</script>
这类似于我前段时间发布的一个问题,Best Way For Back Button To Leave Form Data,但是,此表单的元素是由用户修改的。