繁体   English   中英

KendoUI自动完成提交表格

[英]KendoUI Autocomplete Submit Form

我正在使用包装在<form>的KendoUI自动完成功能。 如果在自动完成选项打开时按Enter,则Enter仅关闭选项,并且您必须再次按Enter才能提交表单。 侦听输入中的按键以检查按下Enter的方法甚至不起作用。 第一次输入永远不会被注册。 我尝试利用KendoUI控件的change事件和close事件来执行javascript以手动提交表单,但是我无法获得使第一个输入提交表单没有不良副作用的任何信息。 这是html:

<form action="@Url.Content("~/Metro/UserAction/SearchLibrary")" id="searchform" method="get" name="searchform">
<div>
    <input name="keywords" id="products" style="width: 300px; margin-right: 10px; font-family: Verdana; font-size: 12px;" />
</div>
</form>

这是控件:

    var autocomplete = $("#products").kendoAutoComplete({
        dataTextField: "SearchTerm",
        filter: "contains",
        template: '<span>#: data.ContentName #</span>',
        minLength: 3,
        dataSource: [],
        select: onSelect,
        change: function (e) {
            if (search) {
                if ($("#products").is(":focus")) {
                    $("#searchform").submit();
                }
            }
            else {
                search = true;
            }
        }
    }).data("kendoAutoComplete");

    $("#products").focusout(function () {
        autocomplete.close();
    });

我要补充说,聚焦是必要的,因为否则自动完成功能将无法关闭...我不知道为什么会这样,因为演示已关闭并且不需要任何其他逻辑。

任何帮助,将不胜感激。

什么是search 您最初有定义吗?

当我尝试了您的代码时,只要没有定义搜索,就可以正常工作,而无需focusoutfocusout单击一下……。 是我尝试过的:

var autocomplete = $("#products").kendoAutoComplete({
    dataTextField: "SearchTerm",
    filter: "contains",
    template: '<span>#: data.ContentName #</span>',
    minLength: 1,
    dataSource: ds,
    change: function (e) {
        if ($("#products").is(":focus")) {
            $("#searchform").submit();
        }
    }
}).data("kendoAutoComplete");

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM