Javascript 单击后将结果放置在文本框中
我正在开发一个自动完成jquery的程序,它工作得非常好。结果将显示为用户类型。现在的问题是,当用户开始键入并显示结果时,当用户单击所需的结果时,它不会被放置在文本框中 JS HTMLJavascript 单击后将结果放置在文本框中,javascript,jquery,html,Javascript,Jquery,Html,我正在开发一个自动完成jquery的程序,它工作得非常好。结果将显示为用户类型。现在的问题是,当用户开始键入并显示结果时,当用户单击所需的结果时,它不会被放置在文本框中 JS HTML 当我深入研究这一点时,您是否考虑过使用jQuery UI来实现这一点 这是一个很好的和抛光的方式做什么,正是你想要的 我不太清楚我为什么会被否决,因为我的建议是解决这个问题的一个非常有效的办法 这里所说的对你来说是一把有用的小提琴 您似乎缺少的主要部分如下: $('#result').on('click','
当我深入研究这一点时,您是否考虑过使用jQuery UI来实现这一点 这是一个很好的和抛光的方式做什么,正是你想要的 我不太清楚我为什么会被否决,因为我的建议是解决这个问题的一个非常有效的办法 这里所说的对你来说是一把有用的小提琴 您似乎缺少的主要部分如下:
$('#result').on('click','li',function(){
/* I used li as the element as im unsure what your response html looks like */
let newValue = $(this).text();
$('.search_tab').val( newValue );
$('#result').html('').hide();
});
$('#result').on('click', 'RESULT_ITEM', function (event) {
$('input.search_tab').val(event.target.innerHTML);
});
这将清除结果,设置单击的值,并为您隐藏结果框
它包含一个为您准备的工作方案。由于我无法访问AJAX,您的本地资源我不得不推断并创建我自己的自动填充,以显示它的工作原理,但是我当然可以帮助您根据您的需要定制解决方案
此解决方案使用您的代码,并且与所有当前jQuery版本兼容。您需要对放入
div#result
元素的项目执行一些事件委派。你会想要这样的东西:
$('#result').on('click','li',function(){
/* I used li as the element as im unsure what your response html looks like */
let newValue = $(this).text();
$('.search_tab').val( newValue );
$('#result').html('').hide();
});
$('#result').on('click', 'RESULT_ITEM', function (event) {
$('input.search_tab').val(event.target.innerHTML);
});
其中,
RESULT\u ITEM
是一个选择器,它匹配自动完成结果中列出的各个项。您是否有从AJAX调用返回的示例代码段?在文本框
和$(“#RESULT”).html(html.show()之后添加一个id
填写文本框$(“#textSearch”).val(html)代码>在jQuery的版本3中不推荐使用。既然替代品已经存在,那么最好现在就开始使用。我不知道。它似乎将
上的的含义重载为两种不同的含义。不过,与JQuery争论毫无意义。已修复。@tengbretson重载是jQuery原理的一个重要部分,就像使用.click()
触发单击或添加单击侦听器,这取决于您是否给出参数。您能将此结果放入我的脚本中吗?我有点困惑,我对jqueryI不太熟悉。我需要看一个来自web服务的ajax响应示例。。。我不知道为什么这会被否决,因为我已经提供了两个有效的解决方案,同时也修改了代码,表明它是有效的。。。如果我得到一些反馈,我会更有帮助。