当输入名称为“提交”时,如何使用Javascript发送表单?

问题:如果一个表单输入有姓名提交,您如何使用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指的是输入,因为它覆盖了表单function submit()。

Firefox中的错误消息是:Error:document.getElementById(“requestform”)。submit不是一个函数。 Safari中类似的错误信息。

值得注意的是,将输入名称更改为“submit”以外的其他东西往往会更容易。请仅使用以下解决方案,如果这是不可能的话。

您需要从不同的形式获取提交功能:

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

如果您已经有另一个< form>标签,您可以使用它,而不是创建另一个。

http://stackoverflow.com/questions/8729319/how-send-a-form-with-javascript-when-input-name-is-submit

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:当输入名称为“提交”时,如何使用Javascript发送表单?