kra*_*626 37 html javascript jquery jquery-ui autocomplete
我正在使用JQuery UI自动完成.我指定最小长度.如果我指定minLength:2我需要在服务触发前键入2个字符.如果我指定minLength:1那么我只需要在源服务触发之前键入一个字符.
但是,当我指定时,minLength:0我仍然需要输入一个字符.那么重点是0什么?它有什么不同1?预期的和期望的行为将在输入具有焦点时立即触发......?
想法?
更新:在大多数情况下,karim的解决方案可以正常工作,但是当点击输入时会出现选项,当单击一个时,源会重新提交空字符串而不是刚刚选中的新选项,因此自动完成选项选择一个选项后,如果该框已空,则相同.
kar*_*m79 55
查看search方法文档:
触发搜索事件,当数据可用时,将显示建议; 可以由类似选择框的按钮用于在单击时打开建议.如果未指定value参数,则使用当前输入的值.可以使用空字符串和minLength:0来调用以显示所有项目.
var source = ['One', 'Two', 'Three', 'Four'];
var firstVal = source[0];
$("input#autocomplete").autocomplete({
minLength: 0,
source: source,
}).focus(function() {
$(this).autocomplete("search", $(this).val());
});Run Code Online (Sandbox Code Playgroud)
.ui-menu-item{
background : rgb(215, 215, 215);;
border : 1px solid white;
list-style-type: none;
cursor : pointer;
}
.ui-menu-item:hover{
background : rgb(200, 200, 200);
}
.ui-autocomplete{
padding-left:0;
margin-top : 5px;
}Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.5/jquery-ui.js"></script>
<input id="autocomplete"/> <input id="submit" type="submit"/>Run Code Online (Sandbox Code Playgroud)
我通过实验了解为什么接受的答案(我投票)可以被认为是略微不完整的.我添加了一些意图,使UX更像组合框:
$('#Carrier').autocomplete(
{
source: '@Url.Action("AutocompleteCarrier", "Client")',
minLength: 0,
select: function (event, data) {
$(this).autocomplete('disable');
}
})
.blur(function(){
$(this).autocomplete('enable');
})
.focus(function () {
$(this).autocomplete('search', '');
});
Run Code Online (Sandbox Code Playgroud)