微信登录

表单事件 - change 事件 - 表单元素值改变事件

表单事件 - change 事件 - 表单元素值改变事件

在前端开发中,表单是与用户进行交互的重要组成部分。为了实现更丰富、更智能的用户体验,我们需要对表单元素的各种操作做出响应。其中,change 事件是一个非常实用的事件,它可以在表单元素的值发生改变时触发相应的代码逻辑。本文将详细介绍 change 事件,包括其基本概念、适用的表单元素、使用方法以及一些实用的例子。

基本概念

change 事件是 JavaScript 中表单元素常用的事件之一,当表单元素的值发生改变且失去焦点时触发。需要注意的是,不同类型的表单元素触发 change 事件的时机可能有所不同。

适用的表单元素

change 事件适用于以下几种常见的表单元素:
| 表单元素 | 触发 change 事件的时机 |
| —— | —— |
| <input type="text"> | 输入框失去焦点且值与之前不同时触发 |
| <input type="checkbox"><input type="radio"> | 选中状态改变时触发 |
| <select> | 选择项改变时触发 |
| <textarea> | 文本域失去焦点且值与之前不同时触发 |

使用方法

要使用 change 事件,我们可以通过以下两种方式绑定事件处理函数:

HTML 内联方式

在 HTML 标签中直接使用 onchange 属性指定事件处理函数,示例代码如下:

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <title>Change Event - Inline</title>
  7. </head>
  8. <body>
  9. <input type="text" onchange="handleChange()">
  10. <script>
  11. function handleChange() {
  12. alert('输入框的值已改变!');
  13. }
  14. </script>
  15. </body>
  16. </html>

在上述代码中,当输入框的值发生改变并失去焦点时,会弹出一个提示框。

JavaScript 代码方式

使用 JavaScript 代码获取表单元素并为其绑定 change 事件处理函数,示例代码如下:

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <title>Change Event - JavaScript</title>
  7. </head>
  8. <body>
  9. <input type="text" id="myInput">
  10. <script>
  11. const input = document.getElementById('myInput');
  12. input.addEventListener('change', function () {
  13. alert('输入框的值已改变!');
  14. });
  15. </script>
  16. </body>
  17. </html>

这种方式更加灵活,便于代码的维护和扩展。

实用例子

实时显示选择的选项

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <title>Change Event - Select Example</title>
  7. </head>
  8. <body>
  9. <select id="mySelect">
  10. <option value="apple">苹果</option>
  11. <option value="banana">香蕉</option>
  12. <option value="orange">橙子</option>
  13. </select>
  14. <p id="result"></p>
  15. <script>
  16. const select = document.getElementById('mySelect');
  17. const result = document.getElementById('result');
  18. select.addEventListener('change', function () {
  19. const selectedValue = this.value;
  20. result.textContent = `你选择了:${selectedValue}`;
  21. });
  22. </script>
  23. </body>
  24. </html>

在上述代码中,当用户选择不同的选项时,页面会实时显示用户选择的内容。

统计勾选的复选框数量

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <title>Change Event - Checkbox Example</title>
  7. </head>
  8. <body>
  9. <input type="checkbox" class="myCheckbox"> 选项 1
  10. <input type="checkbox" class="myCheckbox"> 选项 2
  11. <input type="checkbox" class="myCheckbox"> 选项 3
  12. <p id="countResult">已勾选的选项数量:0</p>
  13. <script>
  14. const checkboxes = document.querySelectorAll('.myCheckbox');
  15. const countResult = document.getElementById('countResult');
  16. checkboxes.forEach(function (checkbox) {
  17. checkbox.addEventListener('change', function () {
  18. const checkedCount = document.querySelectorAll('.myCheckbox:checked').length;
  19. countResult.textContent = `已勾选的选项数量:${checkedCount}`;
  20. });
  21. });
  22. </script>
  23. </body>
  24. </html>

在这个例子中,当用户勾选或取消勾选复选框时,页面会实时更新已勾选的复选框数量。

总结

change 事件是前端开发中处理表单元素值改变的重要事件,通过合理使用该事件,我们可以实现各种与用户交互的功能,提升用户体验。在实际开发中,我们可以根据不同的表单元素和业务需求,灵活运用 change 事件来实现所需的效果。希望本文对你理解和使用 change 事件有所帮助。