我在个人资料页面中实现了预览按钮和保存按钮,将表单提交到两个不同的页面。一个带有保存数据的代码,另一个是假页面,显示的信息与原始页面将显示的信息相同。 这是代码
<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>
如果我单击两个按钮之一,一切正常。 如果我先单击预览,然后单击保存按钮,则保存按钮不会保存信息,而是显示预览页面。为什么?怎么解决呢?
最佳答案
当您单击“预览”按钮时,您将把 form
的 action
属性永久设置为预览 URL。
一般来说,我更愿意使用 AJAX 而不是使用表单 hackery 来做这样的事情,但是您可以像这样修改当前的解决方案:
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
应该为 submitForm('url_to_preview', '_blank')
。
关于javascript - SubmitForm 奇怪的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28973773/