form校验自定义监听

代码如下

<!DOCTYPE html>
<html>
	<head>
		<style>
			/*===包含required的表单===*/
			/* 无效 */
			form :invalid
			{
				
			}
			/* 有效 */
			form :required:valid{
				
			}
		</style>
	</head>
	<body style="overflow: hidden;padding: 0px;border: 0px;margin: 0px;">
		<form action="#" method="get">
			<input id="a" name="a" required />
			<input id="b" name="b" required />
			<input id="c" name="c" required />
			<input type="submit" value="提交" />
		</form>
	</body>
	<script type="text/javascript">
		function tip(form,tipback) {
			//阻止气泡
			form.addEventListener("invalid", function(event) {
				event.preventDefault();
			}, true);

			//定位校验必填第一个未通过位置 获取焦点
			var submitButton = form.querySelector("button:not([type=button]), input[type=submit]")
			submitButton.addEventListener("click", function(event) {
				var invalidFields = form.querySelectorAll(":invalid")
					if (invalidFields.length > 0) {
						tipback()
						invalidFields[0].focus()
					}
			})
		}
		
		//自定义校验未通过触发方法
		function tipback(){
			alert(1)
		}
		// 替换form的验证 未通过tipback回调
		tip(document.querySelector("form"),tipback)
	</script>
</html>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值