【问题标题】:No results message on jquery autocomplete [duplicate]jquery自动完成没有结果消息[重复]
【发布时间】:2010-08-04 18:03:05
【问题描述】:

可能重复:
Handling no results in jquery autocomplete

当结果为空时,我想在jquery autocomplete 上给出“无匹配”消息。

给出了部分答案 here,但它没有准确解释如何在自动完成下拉菜单中显示“不匹配”结果。

更新:这是我基于当前答案的代码..

HTML:

<input type="text" name="myAutocomplete" id="myAutocomplete">

jQuery:

$("#myAutocomplete").autocomplete("ajax.php", {
    selectFirst: false,
    resultsClass: 'my_results_class',
    parse: function(data) {
        if (!data || data.length == 0) {
            $('#myAutocomplete option').val('No Matches');
        }
    },
    focus: function(event, ui) {
        if($(ui.item).val() == 'No Matches')
            $(ui.item).disable();
    },
    select: function(event, ui){
        if($(ui.item).val() == 'No Matches')
            return false;
    }

});

【问题讨论】:

    标签: jquery autocomplete


    【解决方案1】:

    首先,返回一个值为“无匹配”或任何你想要的结果,然后在 jquery 自动完成器上添加这些处理程序

    focus: function(event, ui){ 
        if($(ui.item).val() == 'No Matches')
            $(ui.item).disable();
    },
    select: function(event, ui){
        if($(ui.item).val() == 'No Matches')
            return false;
    },
    

    这应该会阻止用户选择“无匹配”条目。

    【讨论】:

    • 阿尔多,这是正确的吗? pastebin.com/VUcW8MRg它没有显示“无匹配”文本
    • 检查你的自动完成是否有一个 'dropdown_id' 的 id,如果它没有给它那个 id,或者在代码中改变它
    • 哦,我明白了.. 你在引用另一个答案.. id 确实匹配
    • 你发布的 sn-p 混合了两个答案,这就是我这么说的原因
    • 我更新了问题以包括我当前的 HTML + jQuery.. 我应该做些什么改变?
    【解决方案2】:

    previous answer,你需要在之间添加这段代码:

     if (!data || data.length == 0) {
             // handle no data case specially
     }
    

    制作:

     if (!data || data.length == 0) {
       $('#dropdown_id option').val('No Matches');
     }
    

    更新:

    代替:

    $('#myAutocomplete option').val('No Matches');
    

    用途:

    $('#myAutocomplete').val('No Matches');
    

    更新:

    用途:

    $('#school-term').val('No Matches');
    

    【讨论】:

    • 嘿,我没有收到带有此代码的“不匹配”文本:pastebin.com/VUcW8MRg
    • 确保指定要下拉的 id 并在代码中正确指定,也可以试试这个变体:$('#dropdown_id').val('No Matches');
    • id 指定正确。当我做 $('#dropdown_id').val('No Matches');它直接将其放在输入中而不是下拉列表中。你确定“选项”是正确的吗?也许我错了,但我认为自动完成功能通过列表而不是选项选择..?
    • @babonk:确保您为多个元素(例如文本字段和下拉菜单)指定了相同的 id。 dropdown_id 应该是下拉列表的 id,例如 &lt;select id="dropdown_id"&gt;
    • 我更新了问题以包括我当前的 HTML + jQuery.. 我应该做些什么改变?
    猜你喜欢
    • 2013-12-01
    • 1970-01-01
    • 2012-10-28
    • 1970-01-01
    • 2017-12-14
    • 2011-01-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多