2014-11-21 108 views
0

我目前在Kendo UI中遇到了一些问题。目前我有一个自动完成功能,我用它来获得员工。我遇到的问题是我希望能够使用多个词(姓和名)来处理自动完成,例如'John Smith'。目前我的自动完成工作正常,如果输入'john',它会在下面的下拉列表中显示'John smith'以及包含单词'john'的其他名称。如果我输入姓氏'史密斯'并且可以选择'约翰史密斯',那么同样的作品可以。我想要做的是,当整个名字输入'约翰史密斯'允许用户选择约翰史密斯,这意味着它仍然搜索这两个词。谁能帮忙?我将把我的代码放在下面。Kendo UI自动完成,名称搜索

谢谢。

//Autocomplete FeeEarner 
$("#FeeEarnerEmailSend").kendoAutoComplete({ 
    dataSource: new kendo.data.DataSource({ 
     serverFiltering: true, 
     transport: { 
      read: "/" + prefix + "/api/Session/GetEmployees", 
      parameterMap: function() { 
       return { id: $("#FeeEarnerEmailSend").data("kendoAutoComplete").value() }; 
      } 
     } 
    }), 
    dataTextField: 'FullName', 
    filter: "contains", 
    //placeholder: "Search...", 
    minLength: 3, 
    suggest: true, 
    select: function (e) { 
     var employeeAutoComplete = e.sender; 
     // this var is used in the Search button click event 
     selectedEmployeeDataItem = employeeAutoComplete.dataItem(e.item.index()); 
    }, 
    change: function() { 
     if ($.trim($("#FeeEarnerEmailSend").val()) == "") { 
      selectedEmployeeDataItem = null; 
     } 
    }, 
    dataBound: function (e) { 
     selectedEmployeeDataItem = e.sender.dataItem(0); 

    } 
}); 
+0

删除minLength:3并进行搜索 – 2014-11-21 10:01:55

回答

1

我从你的问题中了解到,你想选择名字,直到输入全名。 这取决于自动完成小部件的“过滤器”和“minLength”属性。

kendo自动完成支持的过滤器有:startswith,endswith和contains。

minLength: - 这取决于要求输入多少个字符后应开始过滤。如果这被删除,输入一个字符后立即开始过滤。

由于名称的长度不同,所以我担心使用minLength过滤名称可以满足您的要求。与“filter”属性相同,因为它不支持“完全匹配”等任何内容(默认值= 1)。

因此,它决定了你如何明智地使用这两个属性来实现你的目标。

希望这会有所帮助。