首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用jQuery触发按键(按键)

使用jQuery触发按键(按键)
EN

Stack Overflow用户
提问于 2011-09-15 15:18:16
回答 3查看 20.8K关注 0票数 8

我做了我的家庭作业,检查了很多问题,但仍然找不到我可以去工作的东西。

我有一个搜索输入。当用户点击example时,我希望在我的搜索输入中逐个字母地写上“医生”这个词。我很久以前就可以通过更改$("#search").val()来实现这一点,但问题来了。当用户通常在搜索输入中输入时,自动补全div就会出现。由keydown事件触发。如果我只是改变input的val属性,自动补全div就不会出来,所以我需要以某种方式触发keydown事件,这样它才会出来。

我找到了这个解决方案:

代码语言:javascript
复制
$("#example").click(function() {    
    $("#search").focus();
    var e = jQuery.Event("keyup");
    e.keyCode = 50;                     
    $("#search").trigger(e);                    
});

但是我不能让它工作。有什么想法吗?

下面是html的外观:

代码语言:javascript
复制
<input type="text" id="search" />
Example: <span id="example">doctor</span>
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-09-15 15:36:57

代码语言:javascript
复制
$("#example").click(function() {    
    $("#search").focus();
    var e = jQuery.Event("keydown");
    e.keyCode = 50;                     
    $("#search").trigger(e);                    
});

参考:Definitive way to trigger keypress events with jQuery

票数 8
EN

Stack Overflow用户

发布于 2011-09-15 15:24:05

一个更好的方式是在textChange event上触发自动完成,而不是按键上/下。这样,您就可以轻松地使用$("#search").val(),自动完成程序就会被触发。

额外的好处:如果你使用textChange,如果用户使用鼠标上下文菜单等复制粘贴文本,它也会触发自动完成功能(而且它不会在Tab键或箭头键上触发)

票数 0
EN

Stack Overflow用户

发布于 2021-01-30 11:49:10

如果您使用的是jQuery自动完成功能,则强制按键不会起作用。强制自动完成。您可能需要将其推迟一点:

代码语言:javascript
复制
setTimeout(function()
{
    var CurrentVal = $("#example").val();
    $("#example").autocomplete( "search", CurrentVal )
},500);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7427163

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档