我正在使用jQuery UI Autocomplete插件。有没有办法可以使用“搜索”按钮来激活查询而不是使用“自动填充”文本框来执行此操作?我的用户网络连接非常糟糕,自动填充功能很难让他们使用。
答案 0 :(得分:7)
是的,can be done。为了阻止搜索自然发生,搜索项的最小长度增加到(任意)1000个字符。同时,搜索本身在绑定到按钮的.click()事件中以编程方式触发 - 这在this page的事件选项卡中有记录。在触发搜索之前,minLength设置为0(因此搜索将实际触发),并在自动完成关闭时将其设置回1000.
HTML:
<label for="tags">Tags: </label>
<input id="tags" />
<input type="button" value="Search"/>
JavaScript的:
var availableTags = [
'ActionScript',
'AppleScript',
'Asp',
'BASIC',
'C',
'C++',
'Clojure',
'COBOL',
'ColdFusion',
'Erlang',
'Fortran',
'Groovy',
'Haskell',
'Java',
'JavaScript',
'Lisp',
'Perl',
'PHP',
'Python',
'Ruby',
'Scala',
'Scheme'
];
$('#tags').autocomplete({
source: availableTags,
minLength: 1000,
close: function(event, ui) {
$('#tags').autocomplete('option', 'minLength', 1000);
}
});
$('input[type="button"]').click(function() {
$('#tags').autocomplete('option', 'minLength', 0);
$('#tags').autocomplete('search', $('#tags').val());
});
答案 1 :(得分:2)
这个想法是关闭文本添加事件发生的自动完成。在焦点上,我们禁用自动完成功能,并在按下按钮或按回车键时启用它。
<script type="text/javascript">
$(window).load(function ()
{
// Creates the autocomplete field
$("#lookUpField").autocomplete(
{
source: ["Luis", "Erick", "Jorge", "Ana", "Anabel"],
disabled: true
});
//disables the search trigger when field selected
$("#lookUpField").focus(function ()
{
$("#lookUpField").autocomplete("disable");
});
// disables the field on keypress unless the 'enter' key
// is pressed in which case it triggers a 'search'
$('#lookUpField').keypress(function (e)
{
if (e.which == 13)
{
lookUpData();
}
else
{
$("#lookUpField").autocomplete("disable");
}
});
});
function lookUpData()
{
$("#lookUpField").autocomplete("enable");
$("#lookUpField").autocomplete("search");
}
</script>
<div>
<input id="lookUpField" type="text" />
<input type="button" value="Go" onclick="lookUpData()" />
</div>