我有一个包含表单和导航链接的页面。如果您点击导航链接,我需要提交表单并按照导航请求进行操作。
要做到这一点,我有一个链接谁是href指向新的页面请求,并且我将onclick事件绑定到在页面上提交表单的函数。
这种情况是否会导致难以重现未提交表单的问题?
例如:
function submitForm(){
document.myform.submit();
}
<a href="page1.html" onclick="submitForm()">Back To page 1</a>
<form action="procsub" method="post"><input type="text" id="val1" /></form>
答案 0 :(得分:0)
当您运行javascript以提交表单时,它将发布到表单的操作URL。这会重定向你,你的javascript可能无法运行。
你可以:
a。)将您的submitForm()
更改为通过AJAX发布,然后使用window.location
进行javascript重定向? - &GT; More Info
b。)从操作页面到任何您想去的地方进行重定向:
1.)在表单中传递一个带有目标网址的隐藏字段
2.)在标题或javascript
答案 1 :(得分:0)
提交表单基本上意味着重新加载页面(定位于同一页面,或表格中定义的不同页面)。链接之后也是重新加载页面的一种方法。
你可以做的就是像这样修改你的submitForm函数:
function submitForm(a) {
document.myform.action += '?redirectPage=' + a.href; // given that action doesn't already contain querystrings
document.myform.submit();
}
和
<a href="page1.html" onclick="submitForm(this);">Back to page 1</a>
然后拥有处理表单请求的页面,回发到以redirectPage
传递的任何页面。
表单提交确实不是用户在点击“返回页面1”时所期望的。你可能想再多想一次......