小编典典

输入名称为“ submit”时如何发送带有Javascript的表单?

html

问题: 如果一个表单输入具有名称,submit如何使用Javascript发送表单?

背景:
我正在使用隐藏的HTML表单将用户重定向到另一个页面。我不能在(隐藏的)输入上更改名称,因为另一页在另一台服务器上,并且输入必须完全相同。我的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();

但是,由于一个输入的名称是“提交”(不能是其他名称,否则另一台服务器将无法处理该请求),因此请document.getElementById('redirectForm').submit引用输入,因为它会覆盖form函数submit()

Firefox中的错误消息是:Error: document.getElementById("requestform").submit is not a function。Safari中出现类似的错误消息。


阅读 309

收藏
2020-05-10

共1个答案

小编典典

值得注意的是 :将输入名称更改为“提交”以外的其他名称通常要容易得多。请仅在确实不可能的情况下使用以下解决方案。

您需要submit从其他形式获取函数:

document.createElement('form').submit.call(document.getElementById('redirectForm'));

如果已经有了另一个<form>标签,则可以使用它代替创建另一个标签。

2020-05-10