当输入名为submit时,为什么表单不使用JavaScript提交?
我有以下表格。当我将输入名称设置为当输入名为submit时,为什么表单不使用JavaScript提交?,javascript,forms,dom,Javascript,Forms,Dom,我有以下表格。当我将输入名称设置为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
时,它不会提交表单,这是为什么
<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>
var超时=12;
setTimeout(函数(){
document.getElementById('login').submit();
},超时);
错误消息是:
未捕获的TypeError:document.getElementById(…).submit不是函数(…)
我猜submit名称以某种方式删除了submit函数
JSFiddle并提交名称
编辑我的问题:
当表单包含名为submit的输入时,如何使用js提交表单?JavaScript有一个用于属性和方法的名称空间。每个命名字段都成为表单对象的属性。在您的情况下,
document.getElementById('login').submit不再是一个方法,而是一个输入字段。,因为您可以作为直接属性访问表单的子元素。因此,在你的情况下:
'use strict';
let form = document.getElementById('login');
console.log(form.username, form.userpass, form.submit); // 3 input elements
因此,当您有一个名为submit
的元素时,它会隐藏submit()
函数,因此您会得到关于它不是函数的错误。请参阅,因为我认为提交名称出于某种原因会删除提交函数,因为当我记录.getElementById('login')时.userpass它给我的userpass输入元素与submitlooks相同,就像它毕竟是一个重复的问题,最好的解决方案是:谢谢你,我理解这一点,那么如何使用名为submit?的输入来提交js表单?。或者简而言之:没有名为submit的元素。