簡體   English   中英

jQuery autocomplete'Disable'顯示所有術語

[英]jquery autocomplete 'Disable' show all terms

嘿,有人可以指導我解決這個問題。...我成功創建了jquery自動完成功能,但是我的問題是自動完成建議顯示了所有可用的標簽。 自動完成功能顯示的結果甚至與搜索字詞都不匹配。 我的意思是顯示所有可用的標簽。 是他們僅顯示匹配標簽的任何解決方案。 這是java函數。 任何幫助將不勝感激。 謝謝

$(document).ready(function () {
   $("#search-title").autocomplete({
     source: function ( request, response ) {
        $.ajax({
           url: "availabletags.json",
           dataType: "json",
           data: {
                    term: request.term      
           },
           success: function (data) {
              response( $.map( data.stuff, function ( item ) {
                 return {
                    label: item.label,
                    value: item.value
              };
           }));
        }
        });
        },
       minLength: 2,

       select: function (event, ui) {
       $(event.target).val(ui.item.label);
       window.location = ui.item.value;
       return false;
     }
   });
});

編輯:-這是Json文件

    {"stuff":[ {"label" : "Dragon", "value" : "eg.com"}  , 
     {"label" : "testing", "value" : "eg2.com"}]}

成功編輯代碼

      <script>
    $(document).ready(function () {
    $("#search-title").autocomplete({
    source: function ( request, response ) {
    $.ajax({
        url: "availabletags.json",

       dataType: "json",
    success: function (data) {
    var sData = data.stuff.filter(function(v) { 
      var re = new RegExp( request.term, "i" );
    return re.test( v.label );

    });
    response( $.map( sData, function ( item ) {
                return {
                    label: item.label,
      value: item.value
                };
            }));
        }
       });
      },
      minLength: 2,
      focus: function (event, ui) {
      this.value = ui.item.label;
       event.preventDefault(); // Prevent the default focus behavior.
      },

        select: function (event, ui) {
          $(event.target).val(ui.item.label);
         window.location = ui.item.value;
         return false;
         }
         });
         });
         </script>

這是您要進行的更改:

    dataType: "json",
    success: function (data) {
        var sData = data.stuff.filter(function(v) { 
            return v.value.indexOf( request.term ) > -1; 
        });
        response( $.map( sData, function ( item ) {

該搜索將按value 要按label搜索,換句話說,將要與JSON中的標簽進行比較的用戶輸入,請使用以下代碼:

return v.label.indexOf( ........

更新

要使搜索不區分大小寫,請使用以下命令:

var re = new RegExp( request.term, "i" );
return re.test( v.label );

而不是return v.value.indexOf( request.term ) > -1;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM