input输入框事件

本文介绍了JavaScript中与输入框交互的四个重要事件:focus(获取焦点),blur(失去焦点),change(值改变后失去焦点触发)以及input(值实时变化时触发)。这些事件常用于表单验证和用户交互反馈。

focus,获得焦点

<body>
    <input type="text">
    <script>
        const input = document.querySelector('input')
        // 获得输入框焦点时触发
        input.addEventListener('focus', function() {
            console.log('有焦点触发')
        })
    </script>
</body>

blur,失去焦点

<body>
    <input type="text">
    <script>
        // 失去输入框焦点时触发
        input.addEventListener('blur', function() {
            console.log('失去焦点触发')
        })
    </script>
</body>

change,value发生改变后失去焦点触发

<body>
    <input type="text">
    <script>
        // 失去输入框焦点时触发
        input.addEventListener('change', function() {
            console.log('内容发生改变后失去了焦点触发')
        })
    </script>
</body>

input,value发生变化时即触发

<body>
    <input type="text">
    <script>
        // 当value发生变化时,input便会触发
        input.addEventListener('input', function() {
            console.log(input.value); // 打印出来输入的值
        })
    </script>
</body>
原生 input 输入框事件注册可以通过多种方式实现。 ### HTML 内联事件处理 可以直接在 HTML 的 input 标签中使用事件属性来注册事件。例如,当 input 输入框的值发生变化时触发 `oninput` 事件,按下回车键触发 `onkeydown.enter` 事件: ```html <template> <div class="hello"> <input type="text" @input="onInput" @keydown.enter="onEnter"> </div> </template> <script> export default { name: 'HelloWorld', props: { msg: String }, methods: { onEnter () { console.log('按下enter') }, onInput () { console.log('改变了') } } } </script> ``` 这里在 input 标签中使用 `@input` 和 `@keydown.enter` 分别绑定了 `onInput` 和 `onEnter` 方法,当相应事件触发时,会执行对应的方法 [^1]。 ### JavaScript 动态绑定事件 也可以使用 JavaScript 代码来动态绑定事件。以下是一个示例: ```html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Input Event Binding</title> </head> <body> <input type="text" id="myInput"> <script> const inputElement = document.getElementById('myInput'); inputElement.addEventListener('input', function() { console.log('输入内容发生变化'); }); inputElement.addEventListener('keydown', function(event) { if (event.key === 'Enter') { console.log('按下了回车键'); } }); </script> </body> </html> ``` 在这个示例中,通过 `addEventListener` 方法为 input 元素绑定了 `input` 和 `keydown` 事件,当输入内容变化时会触发 `input` 事件,按下回车键时会触发 `keydown` 事件并进行相应的判断和处理。 ### 不同事件的应用场景 - **oninput 事件**:当 input 输入框的值发生变化时触发,一般用户输入内容时会多次触发该事件,如果不做防抖处理,事件会执行很多次 [^1]。 - **onchange 事件**:在输入框失去焦点且内容发生改变时触发,常用于需要在用户完成输入后进行操作的场景。 - **onkeydown 事件**:当按下键盘上的任意键时触发,可以结合 `event.key` 属性判断按下的具体键,例如判断是否按下回车键 [^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值