在自动完成中显示“找不到结果”

时间:2014-07-16 18:12:14

标签: javascript jquery autocomplete

如果用户的搜索字词与数据库中的任何结果不匹配,则需要显示未找到的结果。 我在这里经历了各种各样的问题,但没有人帮助过我。

<script>
  $(function() {
    function log( message ) {
      $( "<div>" ).text( message ).prependTo( "#log" );
      $( "#log" ).scrollTop( 0 );
    }

    $( "#birds" ).autocomplete({
      source: "search.php",
      minLength: 2,
      select: function( event, ui ) {


        log( ui.item ? "Selected: " + ui.item.value + " aka " + ui.item.label :
          "Nothing selected, input was " + this.actor );
         window.location.href = './company.php?id=' + ui.item.indexid + '&name=' + ui.item.label;

      }
    });
  });



  </script>

任何建议都会有所帮助。

1 个答案:

答案 0 :(得分:1)

这是一个FIDDLE,您可以在其中循环返回&#34;响应中的返回数据:&#34;当你得到一个长度== 0的数组时,它用&#34填充输入字段;没有匹配&#34;或者你想要的任何其他东西。

只是想出一个想法,如果数据集足够小,你可以从数据库中读取所有数据,然后进行自动完成。

JS

var areas = ['california', 'nevada', 'oregon', 'utah', 'arizona', 'new mexico', 'minnesota', 'texas', 'louisiana', 'alabama', 'mississippi', 'oklahoma'];

$('.autocomp').autocomplete({
    autoFocus : true,
    source : areas,
    selectFirst : true,
    response: function( event, ui ) {
                                     var count = 0;
                                     console.log( ui.content.length );
                                     for (var n=0; n < ui.content.length + 1; n++)
                                     {
                                      if( ui.content.length == 0 )
                                      {
                                       $('.autocomp').val('No results');
                                       } else {
                                       count = count+1;
                                               }
                                       }
                                      }
});