SubmitForm奇怪的行为

时间:2015-03-10 20:47:00

标签: javascript jquery

我在个人资料页面中实现了预览按钮和保存按钮,将表单提交到两个不同的页面。一个用于保存数据的代码,另一个用于显示原始页面信息的虚假页面将显示。 这是代码

<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" >&nbsp;
    <span><input type="submit" name="save-info" class="my-buttons" value="Save"></span></p>
     </form>

如果我在两个按钮中的一个上单击一次,则一切正常。 如果我先单击预览然后再单击保存按钮,则保存按钮不会保存信息,而是显示预览页面。为什么?我该如何解决?

1 个答案:

答案 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