2016-08-05 52 views
1

Im下拉本地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

问题是由于名称映射, 就是了标签和值,我使用的是编号和金额我的命名,所以将我的json结果重命名为标签和值。

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

希望这可以帮助其他人。