Kendo UI自动完成,名称搜索

时间:2014-11-21 09:51:36

标签: javascript kendo-ui helpers kendo-autocomplete

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

感谢。

//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);

    }
});

1 个答案:

答案 0 :(得分:1)

我从您的问题中了解到,您希望在输入全名之前选择名称。 这取决于自动完成小部件的“过滤器”和“minLength”属性。

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

minLength: - 在输入过滤应该开始的字符数后,这取决于要求。如果将其移除,则在输入字符后立即开始过滤。

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

因此,您可以明智地使用这两个属性来实现目标。

希望这有帮助。