我在个人资料页面中实现了预览按钮和保存按钮,将表单提交到两个不同的页面。一个用于保存数据的代码,另一个用于显示原始页面信息的虚假页面将显示。 这是代码
<form id="personal-information-form" method="post" enctype="multipart/form-data">
<!--Some code to recollect info -->
<script type="text/javascript">
function submitForm(action)
{
document.getElementById('personal-information-form').action = action;
document.getElementById('personal-information-form').setAttribute("target", "_blank");
document.getElementById('personal-information-form').submit();
}
</script>
<p><input type="submit" name="preview-info" class="my-buttons" onclick="submitForm('url_to_preview')" value="Preview" >
<span><input type="submit" name="save-info" class="my-buttons" value="Save"></span></p>
</form>
如果我在两个按钮中的一个上单击一次,则一切正常。 如果我先单击预览然后再单击保存按钮,则保存按钮不会保存信息,而是显示预览页面。为什么?我该如何解决?
答案 0 :(得分:1)
当您点击预览按钮时,您会永久性地将action
的{{1}}属性设置为预览网址。
一般来说,我更喜欢使用AJAX而不是使用表单hackery来做这样的事情,但你可以像这样修改你当前的解决方案:
form
这将在提交后恢复当前操作和目标。 (Haven经过测试;让我知道这是怎么回事。)
然后,预览按钮的function submitForm(action, target) {
var form = document.getElementById('personal-information-form');
var originalTarget = form.target;
var originalAction = form.action;
form.setAttribute("target", target || "_self");
form.action = action;
form.submit();
form.target = originalTarget;
form.action = originalAction;
return false;
}
应该说onclick
。