Chrome - 如何通过javascript提交具有输入名称=submit的表单

Chrome - how to submit by javascript a form having input name=submit?

本文关键字:submit 表单 输入 何通过 javascript 提交 Chrome      更新时间:2023-09-26

我遇到了绝对奇怪的Chrome行为。下面是代码

<form method="post" id="form" accept-charset="UTF-8" action="/lalala">
<input type="submit"  />
<input type="text" name="submit" value="Post this" />
</form>
<script>
    setTimeout(function(){ 
        var forma = document.getElementById("form");
        console.log(forma.submit);
        forma.submit(); 
    },30000);
</script>

它打印到Chrome调试窗口

<input type="text" name="submit" value="Post this">
Uncaught TypeError: object is not a function

即 document.getElementById("form").submit 是一个输入,但不是提交回调!!

是否可以提交此表单保留输入名称=提交?

是否可以提交此表单保留输入名称=提交?

我相信,答案是否定的

我遇到了绝对奇怪的Chrome行为。

我也可以在火狐中找到问题。

当你使用关键字submit作为form中元素的nameid时,form.submit会变成一个object,引用相应的节点而不是functionsubmit form

请参考 JSFiddle

<form method="post" id="form" accept-charset="UTF-8" action="/lalala">
    <input type="submit" />
    <input type="text" name="submit" value="Post this" />
</form>

var form = document.getElementById("form");
console.log(typeof form.submit);

好的,我已经找到了解决方案:

<input id="submit" type="submit" />
<script>
var button = document.getElementById("submit");
button.click();
</script>