我有几种形式(用户可以动态添加新表单)在一个页面中,它们都被提交给相同的struts2操作。我需要在用户点击保存按钮时提交所有这些表单。
事情在FF中进展顺利。但在IE和Google chrome中,只有最后一个表单被提交。在IE和谷歌浏览器中多表单提交
任何帮助表示赞赏。谢谢。
每个窗体的元素是相同的,一个窗体构成一个对象。每个表单的数据将被添加到一个域对象中,然后该对象将被保存到数据库中。
JavaScript函数来处理保存操作:
<script type="text/javascript" >
function submit() {
var formCnt = document.getElementById('formCnt').value;
for(var i = 1; i <= formCnt; i++) {
var formName = 'form' + i;
document.forms[formName].submit();
}
}
</script>
...
<input type="hidden" id="formCnt" name="formCnt" value="5" />
<form action="add.htm" name="form1" id="form1" method="post" enctype="multipart/form-data" />
<input type="text" name="item.price" id="item.price" value="" />
...
</form>
<form action="add.htm" name="form2" id="form2" method="post" enctype="multipart/form-data" />
<input type="text" name="item.price" id="item.price" value="" />
...
</form>
...
<form action="add.htm" name="form5" id="form5" method="post" enctype="multipart/form-data" />
<input type="text" name="item.price" id="item.price" value="" />
...
</form>
...
通过“它在FF工作”我想你的意思是数据保存到数据库?你没有同时从同一个struts动作中收到所有形式的所有内容,对吗? – deceze 2009-08-27 05:52:22
只有一个名为AddAction的struts动作,页面上的表单全部提交给AddAction。所以我不能在jsp页面中使用不同的字段名称,就像你在上面的html src中看到的那样。我正在考虑使用XHR尝试异步提交。希望这会起作用。感谢您的详细解答。 – user163970 2009-08-27 08:26:33
您无法控制服务器端脚本?顺便说一下,投票和接受按钮是表示感谢的首选方式。 :o) – deceze 2009-08-27 12:49:34