2013-05-03 65 views
0

我使用这个文件来使用自动完成搜索http://demos.kendoui.com/web/autocomplete/index.htmlJson的问题,完成使用剑道UI

在这个自动完成我只有名字,而我想使用姓名和身份证

$(document).ready(function() { 
       var data = [ 
           {"value":"Albania","id":"1"}, 
           {"value":"Andorra","id":"2"}, 
           {"value":"Armenia","id":"3"}, 
           {"value":"Austria","id":"4"}, 
           {"value":"Azerbaijan","id":"5"}, 
           {"value":"Belarus","id":"6"}, 
           {"value":"Belgium","id":"7"}, 
           {"value":"Bosnia & Herzegovina","id":"8"}, 
          ];     

       //create AutoComplete UI component 
       $("#countries").kendoAutoComplete({ 
        dataSource: data, 
        filter: "startswith", 
        placeholder: "Select country...", 
        dataTextField: "value", 
        dataValueField: "value", 
        separator: ", " 
       }); 


      }); 

此代码正在工作,但如何在用户选择任何国家/地区名称时提醒该ID

+0

相反: “阿尔巴尼亚” ,“id”:“1”},'use'{“value:Albania,id:1”},' – dreamweiver 2013-05-03 11:49:26

+0

@MIT:if jsfiddle.net – dreamweiver 2013-05-03 11:50:25

+0

[http://jsfiddle.net/mitesh_inf/BFNtf /](http://jsfiddle.net/ mitesh_inf/BFNtf /) – 2013-05-03 12:05:08

回答

1

答案是

   $("#countries").kendoAutoComplete({ 
        dataSource: data, 
        select: onSelect, 
        filter: "startswith", 
        placeholder: "Select country...", 
        dataTextField: "value", 
        dataValueField: "value", 
        separator: ", " 

       }); 

有事件select和我通话功能onSelect那就是`{ “价值” 的

   function onSelect(e) { 
        var dataItem = this.dataItem(e.item.index()); 
        alert(dataItem.id); 
       } 
0

您必须在数组中的最后一个元素后面放置逗号。现在JavaScript看到最后一个空的元素,并且不支持.toLowerCase。

+0

请注意,作者在我的回答后更改了原始问题。最初他问'但它不工作有控制台中的错误是这样的TypeError:d.toLowerCase不是一个函数});' – Jeff 2013-05-03 15:01:15

1

1.You需要设置dataValueField = “ID”:

$("#countries").kendoAutoComplete({ 
    dataSource: data, 
    filter: "startswith", 
    placeholder: "Select country...", 
    dataTextField: "value", 
    dataValueField: "id", 
    separator: ", " 
}); 

上改变事件2.设置处理程序。如果您使用的MVVM:

onCountryChange = function (e) { 
    var selectedCountry = self.AllCountries[e.item.index()]; 
    alert(selectedCountry.id); 
}); 
+0

有小改变检查我的答案 – 2013-05-06 08:51:21