我完成了我的作业并检查了很多问题,但仍然找不到我可以上班的东西。
我有搜索输入。当用户点击示例时,我希望在我的搜索输入中逐字写入“医生”这个词。我可以通过改变$(“#search”)。val()很久以前做到这一点,但这是问题所在。通常用户键入搜索输入自动完成div即将出现。它由keydown事件触发。如果我只是更改输入的val属性,自动完成div将不会出现,所以我需要以某种方式触发keydown事件,以便它出来。
我找到了这个解决方案:
$("#example").click(function() {
$("#search").focus();
var e = jQuery.Event("keyup");
e.keyCode = 50;
$("#search").trigger(e);
});
但我无法让它发挥作用。有什么想法吗?
以下是html的外观:
<input type="text" id="search" />
Example: <span id="example">doctor</span>
答案 0 :(得分:8)
$("#example").click(function() {
$("#search").focus();
var e = jQuery.Event("keydown");
e.keyCode = 50;
$("#search").trigger(e);
});
答案 1 :(得分:0)
更好的方法是在textChange event上触发自动填充,而不是键入/关闭。这样您就可以轻松使用$("#search").val()
并触发自动完成功能。
添加奖励:如果您使用textChange,如果用户使用鼠标上下文菜单等复制粘贴文本,它也会触发自动完成(并且它不会在Tab键或箭头键上触发)
答案 2 :(得分:0)
如果您使用的是 jQuery 自动完成功能,则强制按键不起作用。强制自动完成。你可能需要延迟一点:
setTimeout(function()
{
var CurrentVal = $("#example").val();
$("#example").autocomplete( "search", CurrentVal )
},500);