2016-08-05 9 views
1

私のページが読み込まれたときにローカルjson配列をプルダウンして保存しましたが、フィルタ結果が表示されませんでしたか? アイデアJquery UiオートコンプリートフィルタローカルJSON配列

var invoiceList= @Html.Raw(
     Json.Encode(
      ((IEnumerable<Invoice>)Model.InvoiceList) 
      .Select(inv=> new 
      { 
       Id = inv.Id, 
       Amount= inv.Amount 
      }) 
     ) 
    ); 

のHTML結果:

var invoiceList= [{"Id":"8da2786f-8f3d-496e-81eb-12be330cb67a","Amount":"100.00"},{"Id":"2D5A84EB-B146-43EE-8D28-8801F9F02027","Amount":"150.00"}]; 

HTML:

<input id="project" onkeydown="InvoiceSearch(this);"> 
<script> 
function InvoiceSearch(elemt) { 
     var id = $(elemt).attr('id'); 
     var searchTerm = $(elemt).val(); 
     $("#project").autocomplete({ 
      minLength: 1, 
      focus: function(event, ui) { 
       $("#project").val(ui.item.Amount); 
       return false; 
      }, 
      source: invoiceList, 

       select: function(event, ui) 
       { 
        $("#project").val(ui.item.Amount); 
        return false; 
       } 
     }).autocomplete("instance") 
      ._renderItem = function(ul, item) { 
       console.log(item); 
       return $("<li>") 
        .append("<div>" + item.Amount+ "<br></div>") 
        .appendTo(ul); 
      }; 
    }; 
</script> 

答えて

0

問題が名マッピングによるもので、 それは私がためのIDと金額を使用していた、ラベルと値を望んでいます私の命名は、私のjsonの結果をラベルと価値に改めました。

var invoiceList= [{"value":"8da2786f-8f3d-496e-81eb-12be330cb67a","label":"100.00"},{"value":"2D5A84EB-B146-43EE-8D28-8801F9F02027","label":"150.00"}]; 

これは他の誰にも役立ちます。