• 主页

  • 投资

  • IT

    🔥
  • 设计

  • 销售

  • 共299篇

    前端 - Javascript

关闭

返回栏目

关闭

返回前端 - Javascript栏目

125 - 表单事件 - input 事件 - 输入框输入事件的应用

作者:

贺及楼

成为作者

更新日期:2025-02-21 19:59:06

表单事件 - input 事件 - 输入框输入事件的应用

在前端开发中,表单是用户与网页进行交互的重要元素,而输入框则是表单里最常用的组件之一。input 事件作为处理输入框输入操作的关键事件,在很多场景下都有着广泛的应用。本文将深入探讨 input 事件的基本概念、使用方法以及一些实用的应用场景。

一、input 事件基本概念

input 事件会在 <input><textarea><select> 元素的值发生改变时触发。与 change 事件不同,input 事件会在每次输入值发生变化时立即触发,而 change 事件通常在元素失去焦点或者用户提交表单时才会触发。

二、input 事件的基本使用方法

以下是一个简单的 HTML 示例,展示了如何使用 input 事件来监听输入框的输入:

  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>Input Event Example</title>
  7. </head>
  8. <body>
  9. <input type="text" id="myInput">
  10. <p id="output"></p>
  11. <script>
  12. const inputElement = document.getElementById('myInput');
  13. const outputElement = document.getElementById('output');
  14. inputElement.addEventListener('input', function () {
  15. const inputValue = inputElement.value;
  16. outputElement.textContent = `你输入的内容是: ${inputValue}`;
  17. });
  18. </script>
  19. </body>
  20. </html>

在这个示例中,我们通过 addEventListener 方法为输入框添加了一个 input 事件监听器。当用户在输入框中输入内容时,input 事件会被触发,事件处理函数会获取输入框的值,并将其显示在页面上的 <p> 元素中。

三、input 事件的应用场景

1. 实时搜索功能

在搜索框中使用 input 事件可以实现实时搜索功能,用户输入关键词时,页面会立即显示相关的搜索结果。

  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>Real-time Search</title>
  7. </head>
  8. <body>
  9. <input type="text" id="searchInput" placeholder="搜索...">
  10. <ul id="searchResults"></ul>
  11. <script>
  12. const searchInput = document.getElementById('searchInput');
  13. const searchResults = document.getElementById('searchResults');
  14. const data = ['苹果', '香蕉', '橙子', '葡萄', '草莓'];
  15. searchInput.addEventListener('input', function () {
  16. const keyword = searchInput.value.toLowerCase();
  17. searchResults.innerHTML = '';
  18. data.forEach(item => {
  19. if (item.toLowerCase().includes(keyword)) {
  20. const li = document.createElement('li');
  21. li.textContent = item;
  22. searchResults.appendChild(li);
  23. }
  24. });
  25. });
  26. </script>
  27. </body>
  28. </html>

2. 输入验证

使用 input 事件可以实时验证用户输入的内容,例如验证手机号码、邮箱地址等。

  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>Input Validation</title>
  7. </head>
  8. <body>
  9. <input type="text" id="phoneInput" placeholder="请输入手机号码">
  10. <p id="validationMessage"></p>
  11. <script>
  12. const phoneInput = document.getElementById('phoneInput');
  13. const validationMessage = document.getElementById('validationMessage');
  14. phoneInput.addEventListener('input', function () {
  15. const phoneNumber = phoneInput.value;
  16. const regex = /^1[3-9]\d{9}$/;
  17. if (regex.test(phoneNumber)) {
  18. validationMessage.textContent = '手机号码格式正确';
  19. validationMessage.style.color = 'green';
  20. } else {
  21. validationMessage.textContent = '手机号码格式错误';
  22. validationMessage.style.color = 'red';
  23. }
  24. });
  25. </script>
  26. </body>
  27. </html>

3. 动态计算

在表单中,使用 input 事件可以实现动态计算功能,例如根据用户输入的数量和单价计算总价。

  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>Dynamic Calculation</title>
  7. </head>
  8. <body>
  9. <label for="quantity">数量:</label>
  10. <input type="number" id="quantity" value="1">
  11. <label for="price">单价:</label>
  12. <input type="number" id="price" value="10">
  13. <p>总价: <span id="totalPrice">10</span></p>
  14. <script>
  15. const quantityInput = document.getElementById('quantity');
  16. const priceInput = document.getElementById('price');
  17. const totalPriceSpan = document.getElementById('totalPrice');
  18. const calculateTotal = () => {
  19. const quantity = parseInt(quantityInput.value);
  20. const price = parseInt(priceInput.value);
  21. const total = quantity * price;
  22. totalPriceSpan.textContent = total;
  23. };
  24. quantityInput.addEventListener('input', calculateTotal);
  25. priceInput.addEventListener('input', calculateTotal);
  26. </script>
  27. </body>
  28. </html>

四、总结

应用场景 说明
实时搜索 用户输入关键词时,立即显示相关搜索结果
输入验证 实时验证用户输入的内容是否符合格式要求
动态计算 根据用户输入的值进行动态计算并显示结果

input 事件为前端开发提供了强大的交互能力,通过监听输入框的输入变化,我们可以实现各种实用的功能。在实际开发中,合理运用 input 事件可以提升用户体验,让网页更加智能和便捷。希望本文能帮助你更好地理解和应用 input 事件。