我做了我的家庭作业,检查了很多问题,但仍然找不到我可以去工作的东西。
我有一个搜索输入。当用户点击example时,我希望在我的搜索输入中逐个字母地写上“医生”这个词。我很久以前就可以通过更改$("#search").val()来实现这一点,但问题来了。当用户通常在搜索输入中输入时,自动补全div就会出现。由keydown事件触发。如果我只是改变input的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>发布于 2011-09-15 15:36:57
$("#example").click(function() {
$("#search").focus();
var e = jQuery.Event("keydown");
e.keyCode = 50;
$("#search").trigger(e);
});发布于 2011-09-15 15:24:05
一个更好的方式是在textChange event上触发自动完成,而不是按键上/下。这样,您就可以轻松地使用$("#search").val(),自动完成程序就会被触发。
额外的好处:如果你使用textChange,如果用户使用鼠标上下文菜单等复制粘贴文本,它也会触发自动完成功能(而且它不会在Tab键或箭头键上触发)
发布于 2021-01-30 11:49:10
如果您使用的是jQuery自动完成功能,则强制按键不会起作用。强制自动完成。您可能需要将其推迟一点:
setTimeout(function()
{
var CurrentVal = $("#example").val();
$("#example").autocomplete( "search", CurrentVal )
},500);https://stackoverflow.com/questions/7427163
复制相似问题