如何在 keyup 上手动触发 jquery 自动完成
How to trigger jquery autocomplete manually on keyup
我想在键入时手动触发 jquery 自动完成,只有在输入结束时按下星号“*”之后。
这是我所做的:
<input type="text" name="test" id="mainSearchBox">
var availableTags = [
"Perl",
"PHP",
"Python",
"Ruby"
];
$('input#mainSearchBox').keyup(function(){
var value = $('input#mainSearchBox').val();
if(value.substr(value.length - 1) == "*"){
$(this).autocomplete({
source: availableTags,
minLength:0
});
} else {
$(this).autocomplete("close");
}
});
在这里,
尝试这样做:
var availableTags = [
"Perl",
"PHP",
"Python",
"Ruby"
];
$('input#mainSearchBox').autocomplete({
source: availableTags,
minLength: 0
});
$('input#mainSearchBox').autocomplete("disable");
$('input#mainSearchBox').keyup(function(e) {
var code = (e.keyCode ? e.keyCode : e.which);
switch (code) {
case 40: //down key
case 38: //up key
//add more cases for special buttons
return;
}
var value = $('input#mainSearchBox').val();
var last = value.substr(value.length - 1);
if (last == "*") {
var valToSearch = value.substr(0, value.length - 1);
$('input#mainSearchBox').autocomplete("enable");
$('input#mainSearchBox').autocomplete("search", valToSearch);
} else {
$('input#mainSearchBox').autocomplete("disable");
}
});
<link rel="stylesheet" href="//code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css">
<script src="//code.jquery.com/jquery-1.10.2.js"></script>
<script src="//code.jquery.com/ui/1.11.4/jquery-ui.js"></script>
<input type="text" name="test" id="mainSearchBox">
看看:
- http://api.jqueryui.com/autocomplete/#method-search
- http://api.jqueryui.com/autocomplete/#method-enable
- http://api.jqueryui.com/autocomplete/#method-disable
我做了什么:
- Loaded/Initialized
autocomplete
在文本框上然后禁用它。
- 每当触发按键事件时,我检查输入中的最后一个字符是否为
*
、
一个。如果是,则在文本框中启用 autocomplete
并强制 search
,输入值不带 *
。
b.如果不是,则禁用自动完成。
我想在键入时手动触发 jquery 自动完成,只有在输入结束时按下星号“*”之后。
这是我所做的:
<input type="text" name="test" id="mainSearchBox">
var availableTags = [
"Perl",
"PHP",
"Python",
"Ruby"
];
$('input#mainSearchBox').keyup(function(){
var value = $('input#mainSearchBox').val();
if(value.substr(value.length - 1) == "*"){
$(this).autocomplete({
source: availableTags,
minLength:0
});
} else {
$(this).autocomplete("close");
}
});
在这里, 尝试这样做:
var availableTags = [
"Perl",
"PHP",
"Python",
"Ruby"
];
$('input#mainSearchBox').autocomplete({
source: availableTags,
minLength: 0
});
$('input#mainSearchBox').autocomplete("disable");
$('input#mainSearchBox').keyup(function(e) {
var code = (e.keyCode ? e.keyCode : e.which);
switch (code) {
case 40: //down key
case 38: //up key
//add more cases for special buttons
return;
}
var value = $('input#mainSearchBox').val();
var last = value.substr(value.length - 1);
if (last == "*") {
var valToSearch = value.substr(0, value.length - 1);
$('input#mainSearchBox').autocomplete("enable");
$('input#mainSearchBox').autocomplete("search", valToSearch);
} else {
$('input#mainSearchBox').autocomplete("disable");
}
});
<link rel="stylesheet" href="//code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css">
<script src="//code.jquery.com/jquery-1.10.2.js"></script>
<script src="//code.jquery.com/ui/1.11.4/jquery-ui.js"></script>
<input type="text" name="test" id="mainSearchBox">
看看:
- http://api.jqueryui.com/autocomplete/#method-search
- http://api.jqueryui.com/autocomplete/#method-enable
- http://api.jqueryui.com/autocomplete/#method-disable
我做了什么:
- Loaded/Initialized
autocomplete
在文本框上然后禁用它。 - 每当触发按键事件时,我检查输入中的最后一个字符是否为
*
、
一个。如果是,则在文本框中启用 autocomplete
并强制 search
,输入值不带 *
。
b.如果不是,则禁用自动完成。