我有以下表格。当我将输入名称设置为submit
时,它不会提交表单,为什么会这样?
<form id="login" method="post" action="">
<input type="hidden" name="username" value="someval">
<input type="hidden" name="userpass" value="somepass">
<input type="hidden" name="submit" value="Login">
</form>
<script type="text/javascript">
var timeout = 12;
setTimeout(function () {
document.getElementById('login').submit();
}, timeout);
</script>
错误信息是:
未捕获TypeError:document.getElementById(...)。submit不是函数(...)
我猜提交名称是否以某种方式删除了提交功能?
当包含名为submit的输入时,如何使用js提交表单?
答案 0 :(得分:1)
JavaScript对属性和方法有一个命名空间。每个命名字段都成为表单对象的属性。在您的情况下,document.getElementById('login').submit
不再是方法,而是输入字段。
答案 1 :(得分:1)
因为您可以将表单的子元素作为直接属性访问。所以在你的情况下:
'use strict';
let form = document.getElementById('login');
console.log(form.username, form.userpass, form.submit); // 3 input elements
因此,当你有一个名为submit
的元素时,它会隐藏submit()
函数,因此你会得到关于它不是函数的错误。