<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8" /><meta http-equiv="X-UA-Compatible" content="IE=edge" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>Document</title></head><body><button>添加事件</button><button>事件监听</button><button>事件派发</button><form action="#" name="eventForm" method="post"><fieldset><legend>表单常用事件</legend><inputtype="text"id="focus"placeholder="onFocus"onfocus="myFocus(this)"/><inputtype="text"id="blur"placeholder="onBlur"onblur="myBlur(this)"/><inputtype="text"name="change"id="change"placeholder="onChange"onchange="myChange(this)"/><inputtype="text"id="input"placeholder="onInput"oninput="myInput(this)"/><button name="submit" onclick="check(this)">提交</button></fieldset></form><script>function show() {console.log(event.target);}// 添加事件let btn1 = document.querySelector("button:first-of-type");btn1.onclick = show;// 添加事件监听let btn2 = document.querySelector("button:nth-of-type(2)");btn2.addEventListener("click", show, false);// btn2.removeEventListener("click", show, false);// 事件派发let btn3 = document.querySelector("button:nth-of-type(3)");// 先添加一个事件,然后自动去的触发它btn3.addEventListener("click", show, false);// 创建一个自定义事件let myclick = new Event("click");// setInterval: 间歇式的定时器// dispatchEvent 派发事件setInterval(() => {btn3.dispatchEvent(myclick);}, 2000);// form常用事件function myFocus(ele) {ele.form.focus.value = "获取焦点";}function myBlur(ele) {ele.form.blur.value = "获取焦点,又失去焦点";}function myChange(ele) {ele.form.change.value = "值修改后,又失去焦点";}// input: 值发生改变就会触发,不必等失去焦点,与change不同function myInput(ele) {let input = document.querySelector("#input");let p = document.createElement("p");p.textContent = ele.form.input.value;input.insertAdjacentElement("afterend", p);}function check(ele) {// 防止默认的提交行为, 用户自定义event.preventDefault();// 防止冒泡event.stopPropagation();let focus = ele.form.focus;let blur = ele.form.blur;let change = ele.form.change;let input = ele.form.input;if (focus.value.length === 0) {alert("onFocus不能为空");return false;} else if (blur.value.length === 0) {alert("onBlur不能为空");return false;} else if (change.value.length === 0) {alert("onChange不能为空");return false;} else if (input.value.length === 0) {alert("onInput不能为空");return false;} else {alert("验证通过");}}</script></body></html>
图示:
相关推荐
© 2020 asciim码
人生就是一场修行