常见的表单事件类型:

1.input输入事件 关注输入过程

var textInput = document.getElementById("myInput")
var radios = document.getElementsByName("sex")
textInput.oninput = function(){
            console.log("input", this.value)
        }

2.change更新事件 关注输入结果

textInput.onchange = function(){
            console.log("change", this.value)
        }

3.focus 获取焦点事件

textInput.onfocus = function(){
            console.log("focus", this.value)
        }

4.blur 失去焦点事件

textInput.onblur= function(){
            console.log("blur", this.value)
        }

5.select 选择事件

textInput.onselect= function(e){
            console.log("select", e.select) // ? 
        } 

6.reset重置事件 事件目标是form

var form = document.querySelector("form")
form.onreset = function(e){
            // alert("即将重置")
            // var msg = prompt("请说明你要重置的原因?")
            var bool = confirm("确定要重置表单吗?")
            if(!bool){
                e.preventDefault()
            }
        }  

7.submit事件 表单提交事件 事件目标是form

        form.onsubmit = function(e){
            // 阻止表单自动提交
            e.preventDefault()
        }

总结:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>表单事件</title>
</head>
<body>
    <form action="">
        <!-- 回顾: input的type类型值有checkbox, text, radio, file, image, submit, button, number, password, email, reset, range, prgress, color, time, date等等-->
        <label for="myInput">账号:</label>
        <input type="text" id="myInput">
        <input type="radio" name="sex">
        <input type="radio" name="sex">
        <input type="reset">
        <input type="submit"> <button>提交</button>
        <input type="color" id="color">
    </form>

    <script>
        var textInput = document.getElementById("myInput")
        var radios = document.getElementsByName("sex")
        // 1, input输入事件 关注输入过程
        textInput.oninput = function(){
            console.log("input", this.value)
        }
        // 2, change更新事件  关注输入结果
        textInput.onchange = function(){
            console.log("change", this.value)
        }
        // 3, focus 获取焦点事件 
        textInput.onfocus = function(){
            console.log("focus", this.value)
        }
        // 4, blur 失去焦点事件 
        textInput.onblur= function(){
            console.log("blur", this.value)
        }
        // 5, select 选择事件
        textInput.onselect= function(e){
            console.log("select", e.select) // ? 
        }   
        var form = document.querySelector("form")
        // 6, reset 重置事件  事件目标是form
        form.onreset = function(e){
            // alert("即将重置")
            // var msg = prompt("请说明你要重置的原因?")
            var bool = confirm("确定要重置表单吗?")
            if(!bool){
                e.preventDefault()
            }
        }
        
        // 7, submit 表单提交事件  事件目标是form
        form.onsubmit = function(e){
            // 阻止表单自动提交
            e.preventDefault()
        }

        // 单选框, 可以绑定click, input, change事件, 建议使用change
        radios[0].onchange = function(){
            // radio的value值不管有没有选中, 都是on
            console.log(this.value, radios[1].value)
            // 单选或多选框通过checked属性获取选中状态
            console.log(this.checked, radios[1].checked)
        }

        // 总结: 常用的表单事件有
        // input, change, focus, blur, reset, submit, select


        color.onchange= function(){
            console.log(this.value)
        }
    
    </script>
</body>
</html>

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐