【问题标题】:Change event not being triggered on text input [closed]文本输入未触发更改事件[关闭]
【发布时间】:2020-12-15 19:47:22
【问题描述】:

我正在尝试将函数绑定到“更改”事件,但它不起作用。到目前为止,我已经尝试了 4 种方法。

1.

$('#search').on('change', function(){ console.log('a') })
$('#search').change(function(){ console.log('a') })
$(document).on('change', '#search', function(){ console.log('a') })
document.getElementById('search').onchange = function(){ console.log('a') }

它们都没有工作。我尝试从控制台(Chrome 的开发工具)添加它们。

Here 是我试图让它工作的页面。任何帮助将不胜感激。 :)

【问题讨论】:

  • 请在StackSnippets中提供您的样品
  • 您的页面上没有任何代码可以处理 id 为 search 的元素 - 看起来您只是忘了包含代码。
  • 实际上我删除了代码并试图使其首先在控制台中工作。因此我给出了该页面的链接。但是您使用“输入”事件的建议奏效了。谢谢。你能把它写成一个简短的答案,这样我就可以将它标记为已解决,以避免开放性问题混乱。再次感谢。 :)
  • 在您页面的控制台上运行代码,运行良好。我猜你希望 cange 做一些它不应该做的事情。

标签: javascript jquery onchange jquery-events


【解决方案1】:

input 事件不同,change 事件不一定会在每次更改元素值时触发。您可以/应该使用input 事件而不是change。它会在每次击键时触发,即使您只是从剪贴板粘贴一些内容:

document.querySelector("#search").addEventListener('input', e => {
  console.log(e.target.value)
})

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-12-28
    • 2018-07-17
    • 1970-01-01
    • 2011-01-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-01
    相关资源
    最近更新 更多