首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >当输入名称为"submit“时,如何使用Javascript发送表单?

当输入名称为"submit“时,如何使用Javascript发送表单?
EN

Stack Overflow用户
提问于 2012-01-04 23:27:25
回答 2查看 3.6K关注 0票数 20

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

背景:我正在将用户重定向到另一个带有隐藏表单的页面。我不能更改(隐藏的)输入上的名称,因为另一个页面在另一个服务器上,输入必须与它们的原样完全相同。我的HTML表单如下所示:

代码语言:javascript
运行
复制
<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代码行自动发送表单:

代码语言:javascript
运行
复制
document.getElementById('redirectForm').submit();

但是,由于一个输入的名称是"submit“(它不能是其他名称,否则另一个服务器将不会处理该请求),因此document.getElementById('redirectForm').submit会在覆盖表单函数submit()时引用该输入。

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-01-04 23:29:49

值得一提的是__:将输入名称更改为"submit“之外的其他名称通常要容易得多。只有在确实不可能的情况下,才使用下面的解决方案。

您需要从不同的表单获取submit函数:

代码语言:javascript
运行
复制
document.createElement('form').submit.call(document.getElementById('redirectForm'));

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

票数 17
EN

Stack Overflow用户

发布于 2015-12-30 16:17:16

使用HTMLFormElement.prototype中的submit()方法

代码语言:javascript
运行
复制
HTMLFormElement.prototype.submit.call(document.getElementById('redirectForm'));
票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8729319

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档