JavaScript 中的 change

简介: JavaScript 中的 change

什么是 change 事件?

change 事件是 HTML 表单元素的一种事件类型,当表单元素的值发生变化并且失去焦点时,该事件会被触发。常见的表单元素包括 <input><select><textarea>

适用元素

  • <input>(type 为 text、checkbox、radio 等)
  • <select>
  • <textarea>

基本使用

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Change Event Demo</title>
</head>
<body>
    <form id="myForm">
        <label for="myInput">Input:</label>
        <input type="text" id="myInput">
        
        <label for="mySelect">Select:</label>
        <select id="mySelect">
            <option value="1">Option 1</option>
            <option value="2">Option 2</option>
            <option value="3">Option 3</option>
        </select>
        
        <label for="myTextarea">Textarea:</label>
        <textarea id="myTextarea"></textarea>
        
        <button type="submit">Submit</button>
    </form>
    
    <script src="app.js"></script>
</body>
</html>

js

document.addEventListener('DOMContentLoaded', () => {
    const inputElement = document.getElementById('myInput');
    const selectElement = document.getElementById('mySelect');
    const textareaElement = document.getElementById('myTextarea');
    
    inputElement.addEventListener('change', (event) => {
        console.log('Input changed to:', event.target.value);
    });
    
    selectElement.addEventListener('change', (event) => {
        console.log('Select changed to:', event.target.value);
    });
    
    textareaElement.addEventListener('change', (event) => {
        console.log('Textarea changed to:', event.target.value);
    });
});

在上面的代码中,我们为每个表单元素添加了一个 change 事件监听器。当用户改变元素的值并且失去焦点时,事件会被触发,控制台会输出相应的信息。

change 事件的实际应用

实时表单验证

change 事件常用于实时表单验证。例如,我们可以在用户输入内容后,立即验证输入的有效性并给予反馈:

document.addEventListener('DOMContentLoaded', () => {
    const inputElement = document.getElementById('myInput');
    
    inputElement.addEventListener('change', (event) => {
        const value = event.target.value;
        const feedbackElement = document.getElementById('feedback');
        
        if (value.length < 3) {
            feedbackElement.textContent = 'Input must be at least 3 characters long.';
        } else {
            feedbackElement.textContent = '';
        }
    });
});

动态更新界面

change 事件也可以用于根据用户选择动态更新界面内容。例如,当用户选择一个选项时,显示对应的详细信息:

document.addEventListener('DOMContentLoaded', () => {
    const selectElement = document.getElementById('mySelect');
    const detailsElement = document.getElementById('details');
    
    const details = {
        '1': 'Details for Option 1',
        '2': 'Details for Option 2',
        '3': 'Details for Option 3'
    };
    
    selectElement.addEventListener('change', (event) => {
        const value = event.target.value;
        detailsElement.textContent = details[value] || 'No details available';
    });
});

注意事项

  1. changeinput 事件的区别
  • change 事件在元素失去焦点时触发,而 input 事件在元素的值每次发生变化时立即触发。
  • input 事件适用于需要实时更新的场景,例如搜索框的自动补全。
  1. 跨浏览器兼容性
  • change 事件在主流浏览器中均有良好的支持,但在某些旧版浏览器中可能存在细微差异。因此,建议在实际项目中进行充分的测试。

change 事件是一个非常有用的事件类型,特别适用于表单元素的值变化检测和处理。在实际开发中,合理使用 change 事件可以提升用户体验,提高表单交互的动态性和响应性。希望本文对你理解和使用 change 事件有所帮助。


目录
相关文章
|
监控 NoSQL JavaScript
Java和Node.js实战 MongoDB 4.x 新特性:Change Streams 变化流
MongoDB 4.0 Change Streams增强新特性,我们可以跟踪单个集合Colletion、数据库或部署集群的数据库和集合中的所有变化。
2544 0
|
JavaScript 前端开发
javascript改写 <select>checked的选中,并不会出发change事件,太好了!
测试select标签的分别用程序checked、用户手动checked 第一级菜单: 请选择 料件L 成品P 第二级菜单: 请选择 ...
883 0
|
3月前
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp的客户关系管理系统附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp的客户关系管理系统附带文章源码部署视频讲解等
83 2
|
3月前
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp的小区物流配送系统附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp的小区物流配送系统附带文章源码部署视频讲解等
100 4
|
3月前
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp的宠物援助平台附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp的宠物援助平台附带文章源码部署视频讲解等
76 4
|
3月前
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp的宠物交易平台附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp的宠物交易平台附带文章源码部署视频讲解等
66 4
|
3月前
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp的大学生入伍人员管理系统附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp的大学生入伍人员管理系统附带文章源码部署视频讲解等
85 4
|
3月前
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp宿舍管理系统的附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp宿舍管理系统的附带文章源码部署视频讲解等
75 3
|
3月前
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp的家政平台附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp的家政平台附带文章源码部署视频讲解等
56 3
|
3月前
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp的宠物医院系统附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp的宠物医院系统附带文章源码部署视频讲解等
48 2