我有一个搜索表单,其中包含下拉菜单和 <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/