JavaScript中使用编程式触发表单提交时Console控制台报错:document.getElementById(...).submit is not a function

JavaScript中使用编程式触发表单提交时Console控制台报错:

分析:

这个错误的信息应该是比较明显的
Uncaught TypeError: document.getElementById(…).submit is not a function
注意错误提示信息有一个submit,说明是DOM对象的submit方法的问题
如果错误提示信息也是这样的,那么这篇博客应该对你有所帮助;
往下看

  • 错误示例

注:此代码为简单的演示没有过多的逻辑

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>form</title>
	</head>
	<body>
		
		<form action="https://www.baidu.com" id="f">
			
			账号:<input type="text" name="username" id="username" value="" /><br />
			密码:<input type="text" name="password" id="password" value="" /><br />
			<!--
            	作者:39052795@qq.com
            	时间:2020-05-04
            	描述:	
            -->
			<input type="button" id="mit" name="submit" value="登录" />
					
		</form>
		
		<script type="text/javascript">
			// 使用编程式触发表单条件完成表单校验
			window.onload = function() {
				// 给button按钮登录绑定上 click事件
				var submitDom = document.getElementById("mit");
				
				submitDom.onclick = function () {
					//获取值 对比返回
					var usernameDom = document.getElementById("username");
					var passwordDom = document.getElementById("password");
					if (usernameDom.value.trim().length > 0 && passwordDom.value.trim().length > 0) {
						document.getElementById("f").submit();
					} else {
						alert("用户名和密码不能为空");
					}
				}
			}
		</script>
	</body>
</html>
  • 原因:

表单里面不能有name="submit"的元素,否则在提交的 时候,该对象会和submit();方法发生混淆造成该错误!!

总结:

  1. 一般是button按钮的name属性值和id属性值写成了submit
  2. 即使是定义了button按钮的name属性值为submit而并没有使用此属性也是不行的!!
  3. 注意:是整个form表单!!当表单…中含有name=”submit”时,提交时就会有冲突,这个错误常见于按钮上

解决:在使用编程式触发表单提交时,属性值要避免为submit

附:详细错误截图
在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值