js 事件监听

在 JavaScript 中,当 <input> 输入框的值发生变化时,可以通过监听 inputchange 事件来触发函数。以下是几种常用方法:


1. 使用 addEventListener(推荐)

通过 JavaScript 监听 input 事件,实时触发函数:

<input type="text" id="myInput">

<script>
  const input = document.getElementById("myInput");
  input.addEventListener("input", function(event) {
    const value = event.target.value; // 获取输入的值
    console.log("当前输入值:", value);
    // 在这里调用你的函数
  });
</script>

2. 使用 oninput 属性(内联方式)

直接在 HTML 标签中绑定 oninput 事件:

<input type="text" oninput="handleInput(this.value)">

<script>
  function handleInput(value) {
    console.log("当前输入值:", value);
    // 在这里编写逻辑
  }
</script>

3. 使用 onchange 事件(仅在失去焦点时触发)

如果需要在输入框失去焦点时触发(比如用户按回车或点击其他地方),可以用 change 事件:

<input type="text" id="myInput">

<script>
  const input = document.getElementById("myInput");
  input.addEventListener("change", function(event) {
    console.log("最终输入值:", event.target.value);
  });
</script>

4. 防抖优化(减少高频触发)

如果输入触发频繁操作(如搜索建议),可以使用防抖(Debounce)优化:

<input type="text" id="searchInput">

<script>
  const searchInput = document.getElementById("searchInput");

  // 防抖函数
  function debounce(func, delay = 300) {
    let timer;
    return (...args) => {
      clearTimeout(timer);
      timer = setTimeout(() => func.apply(this, args), delay);
    };
  }

  // 实际执行的函数
  function handleSearch(value) {
    console.log("搜索关键词:", value);
  }

  // 绑定防抖后的函数
  searchInput.addEventListener("input", debounce(function(event) {
    handleSearch(event.target.value);
  }));
</script>

关键点总结

  • input 事件:在输入框的值每次变化时触发(实时)。
  • change 事件:在输入框失去焦点且值已改变时触发。
  • 获取输入值:通过 event.target.value 或直接传递 this.value
  • 防抖:高频触发时优化性能。

根据需求选择合适的方式即可!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值