当输入名称调用submit时,为什么表单不使用JavaScript提交
Why the form not submitting using JavaScript when input name called submit?
我有以下表单。当我将输入名称设置为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>
错误消息为:
未捕获的类型错误:document.getElementById(…).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()
函数,因此你会得到关于它不是函数的错误。
相关文章:
- HTML表单提交时未执行外部函数
- JS表单提交"无法使用Chrome数据保护程序加载此页面.尝试重新加载页面.调试信息:POST CISmtuK
- 将图像上传ajax与表单提交ajax相结合
- Javascript无法处理表单提交
- 如何在我的情况下禁用表单提交
- 加载后的页面与ajax表单提交不起作用
- angularjs-控制器在表单提交时未调用
- 禁用带有字符白名单的表单提交
- 如何使用Google Analytics跟踪表单提交
- 使用javascript将表单提交到iframe目标中
- e.preventDefault在表单提交时被忽略
- AngularJS JQuery Ajax表单提交等效
- JavaScript表单提交帮助
- PHP表单提交和重定向
- 当所有输入文本字段都为空时,禁止表单提交,但当jquery中的任何字段不为空时允许提交
- setTimeOut AFTER jQuery表单提交
- 从函数中选择要触发表单提交的正确元素
- JavaScript表单提交没有't fire asp服务器端点击功能的提交按钮
- 表单提交问题,如何在我的URL末尾获得ID的值
- Javascript使用Confirm取消表单提交