0

我目前在使用 Kendo UI 时遇到了一些问题。目前,我有一个自动完成功能,用于获取员工。我遇到的问题是我希望能够让自动完成功能与多个单词(名字和姓氏)一起使用,例如“John Smith”。目前,如果输入“john”,我的自动完成工作正常,它将在下面的下拉列表中显示“John smith”以及包含“john”一词的其他名称。如果我输入姓氏“smith”并可以选择“john 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);

    }
});
4

1 回答 1

1

我从您的问题中了解到的是您要选择名称,直到输入全名。这取决于自动完成小部件的“filter”和“minLength”属性。

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

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

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

因此,如何明智地使用这两个属性来实现目标取决于您自己。

希望这可以帮助。

于 2014-11-21T16:33:38.743 回答