自动选择顶部自动完成结果为隐藏输入

时间:2013-11-17 15:12:33

标签: javascript jquery json jquery-ui autocomplete

我正在尝试按ID进行搜索,但是按名称进行自动填充 所以我把一个隐藏的输入,在select上更新。
问题是,如果用户按下Esc或某些如何在不选择的情况下启动搜索,则搜索失败(不返回所需的值),因为隐藏值未更新。我试图强制自动完成选择最高结果,只要没有选择其他结果。

我的代码是:

$('#search_box').focus(function () {
            $(hidden).val("");
        });
$('#search_box').autocomplete({
            source: "autocomplete_empl.asp",
            minLength: 2,
            autoFocus: true,
            select: function (event, ui) {
                $('#hidden').val((ui.item ? ui.item.id : 0));
            }
        });

谢谢!

P.S

返回的列表以json格式显示。

1 个答案:

答案 0 :(得分:0)

我会检查autocomplete val()是否为空。 如果它是空的什么都不做(或者你需要选择第一个值?)

$('#search_box').focus(function () {
            $(hidden).val("");
        });
$('#search_box').autocomplete({
            source: "autocomplete_empl.asp",
            minLength: 2,
            autoFocus: true,
            select: function (event, ui) {
                if($('#search_box').val() !== ""){
                   $('#hidden').val((ui.item ? ui.item.id : 0));
                }
            }
        });

如果您需要选择第一个选项,只需使用您需要的数据触发搜索事件

select: function (event, ui) {
                if($('#search_box').val() !== ""){
                   $('#hidden').val((ui.item ? ui.item.id : 0));
                }
                else{
                  $('#search_box').autocomplete('search', 'DataYouNeed');
                }
            }

这是API页面上的链接,它解释了一下 http://api.jqueryui.com/autocomplete/#method-search