JQuery keyup 和通过单击页面上其他位置触发的更改事件

标签 jquery onchange

我有一个搜索表单,其中包含下拉菜单和 <input type="text">元素。我想根据是从下拉列表中进行选择还是在字段中输入内容来执行 AJAX 请求。

我已经使用这个脚本来完成这个 -

$('#searchform').on('keyup change', function() {
      //DO THE AJAX SEARCH
}

一切正常,除了在使用表单后单击页面上的任意位置会触发事件,因为我想它被视为“更改”。

例如,我将一些搜索结果附加到 HTML div,然后当用户单击结果时,会触发“form”更改事件,并尝试再次执行该功能。它不会改变结果,但仍然会产生不良效果。

有没有办法让我可以通过下拉选择或在输入字段中键入来触发 AJAX 请求,但如果更改未开启 #searchform 则让它忽略该请求元素?

最佳答案

$('#searchform').on('keyup change', function(e) {
      if ($(e.target).hasClass('mySpecialInputClass') {
          // execute your code
      }
}

e.target 是发起事件的元素。您可能会发现事件对象的其他属性很有用。

关于JQuery keyup 和通过单击页面上其他位置触发的更改事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17867648/

相关文章:

jquery - 当用户使用 jQuery 将表头滚动到 View 之外时,表头保持固定在顶部

javascript - AngularJS:跟踪选中了哪个复选框

events - 在运行时获取文本框 dojo 小部件内的值

javascript - iOS 选择 onchange 不触发

onchange - 如何在更改 mat-checkbox 时调用函数时停止事件传播?

javascript - 使用 javascript 播放完 youtube flash 视频后捕获事件

jquery - 如何使用 jQuery 附加 HTML

javascript - 添加/减去 100% 的左属性不起作用

javascript - jquery链接标签href与onclick需要两次点击才能加载ajax

jquery - 如何从文本输入框中删除空格