在jquery自动完成上没有结果消息

时间:2010-08-04 07:51:43

标签: jquery autocomplete

  

可能重复:
  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;
    }

});

2 个答案:

答案 0 :(得分:1)

首先,返回值为'No matches'的结果或任何你想要的结果,然后在jquery autocompleter上添加这些处理程序

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;
},

这样可以防止用户选择“无匹配”条目。

答案 1 :(得分:0)

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');