使用jQuery设置Input值无法触发关联列表搜索的问题求助
问题原因
你之前的代码无法触发过滤存在两个核心问题:
change事件仅在输入框失去焦点时才会触发,而站点供应商的过滤逻辑监听的是实时输入类事件(input/keyup等)或回车键按下事件- 你错误地给父DIV设置了
value属性,没有正确更新要求的data-filter属性
可行解决方案
使用以下代码即可完成赋值+触发过滤的完整操作:
var $treeFilter = $("#split-left").find("div.tree-filter.onesetupNavTreeFilter"); var $searchInput = $treeFilter.find("input.filter-box"); // 给搜索框赋值 $searchInput.val("Hola"); // 正确更新父容器的data-filter属性 $treeFilter.attr("data-filter", "Hola"); // 触发实时输入事件,适配大多数即时搜索场景 $searchInput.trigger("input"); // 模拟用户按下回车键,适配回车才触发的过滤逻辑 $searchInput.trigger($.Event("keyup", { keyCode: 13, which: 13 }));
补充排查方案
如果上述代码仍然无法触发过滤,可以尝试替换触发的事件类型:
- 触发
keydown事件代替keyup - 触发
keypress事件 - 部分前端框架会监听
compositionend事件,可以补充触发该事件
内容的提问来源于stack exchange,提问作者cruz190
相关产品推荐
相关产品推荐

