gpt4 book ai didi

javascript - SubmitForm 奇怪的行为

转载 作者:行者123 更新时间:2023-12-03 10:36:09 25 4
gpt4 key购买 nike

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

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

如果我单击两个按钮之一,一切正常。如果我先单击预览,然后单击保存按钮,则保存按钮不会保存信息,而是显示预览页面。为什么?怎么解决呢?

最佳答案

当您单击“预览”按钮时,您将把 formaction 属性永久设置为预览 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com