[jQuery UI键盘自动完成?

问题描述 投票:0回答:1

我正在使用jQuery UI库的autocomplete功能。我在网页上有两个表单字段-一个是内部搜索,一个是我公司通过REST API在第三方网站上管理的内容。

这可以正常工作-如果我有两个相邻的表单字段,我可以键入其中一个并在下面获取该数据源的自动完成结果。

不过,我被要求做的是将两个字段合并为一个“主”搜索字段,并隐藏了两个单独的字段。它将在both]数据源中搜索用户的输入,并在该字段下方的单独ui-autocomplete框中显示结果。

[我的想法是,如果我可以将自动完成的触发方法从“ focus”更改为“ keyup”,那么它将很好地工作,或者如果我可以“伪造” focus触发器而不将光标发送到隐藏字段。] >

对此有何想法?

更新:

这是我一直在尝试的代码,它不起作用。这就是让我认为我依赖焦点事件的原因。

$(function(){
// run autocomplete on form fields
searchAutocomplete('/support/results_json/','#keywords');
searchAutocomplete('/support/zdresults_json/','#zd_search');
//$('#ee_searchform').hide(); // will need this later
//$('#zd_searchform').hide(); // will need this later
$('<form id="support_search" class="group" method=""><fieldset><legend>Search Support</legend><ol><li><label for="support_keywords">Keywords</label><input type="search" value="" name="support_keywords" id="support_keywords" /></li><li class="submit"><input type="submit" name="support_submit" id="support_submit" value="Search" /></li></ol></form>').insertAfter('#zd_searchform');

$('#support_keywords').keyup(function() {
  var value = $('#support_keywords').val();
    $('#keywords').val(value);
    $('#keywords').keyup();
}); 
});

所以您可以看到,我采用了HTML包含的两个表单字段,并确保它们调用了有效的自动完成功能。然后,我使用jQuery向DOM中添加另一种形式,当它得到一个keyup时,它将其内容添加到其他字段之一中,并为该字段提供keyup。不过,这并不称为自动完成功能。

非常感谢。

我正在使用jQuery UI库的自动完成功能。我在网页上有两个表单域-一个是内部搜索,一个是通过...

jquery jquery-ui jquery-ui-autocomplete
1个回答
0
投票

我在这里的第一个想法是隐藏原始字段(如果需要,请聚焦),然后在单个焦点事件之前或与之结合注入一个新字段,然后建议您管理自动完成源:

source: function(request, response)
    {
        // do both your ajax calls here and combine your results prior to providing to your field
    }
© www.soinside.com 2019 - 2024. All rights reserved.