form校验自定义监听

代码如下


<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>

你可能感兴趣的:(笔记)