问题:如果一个表单输入的名称为submit,如何使用Javascript发送表单
背景:我正在将用户重定向到另一个带有隐藏表单的页面。我不能更改(隐藏的)输入上的名称,因为另一个页面在另一个服务器上,输入必须与它们的原样完全相同。我的HTML表单如下所示:
<form id="redirectForm" method="post" action="http://www.example.com/">
<input name="search" type="hidden" value="search for this" />
<input name="submit" type="hidden" value="search now" />
</form>今天,我使用以下javascript代码行自动发送表单:
document.getElementById('redirectForm').submit();但是,由于一个输入的名称是"submit“(它不能是其他名称,否则另一个服务器将不会处理该请求),因此document.getElementById('redirectForm').submit会在覆盖表单函数submit()时引用该输入。
火狐中的错误消息是:Error: document.getElementById("requestform").submit is not a function。Safari中类似的错误消息。
发布于 2012-01-04 23:29:49
值得一提的是__:将输入名称更改为"submit“之外的其他名称通常要容易得多。只有在确实不可能的情况下,才使用下面的解决方案。
您需要从不同的表单获取submit函数:
document.createElement('form').submit.call(document.getElementById('redirectForm'));如果你已经有了另一个<form>标签,你可以使用它来代替创建另一个标签。
发布于 2015-12-30 16:17:16
使用HTMLFormElement.prototype中的submit()方法
HTMLFormElement.prototype.submit.call(document.getElementById('redirectForm'));https://stackoverflow.com/questions/8729319
复制相似问题