javascript - KendoUI 自动完成提交表单

标签 javascript jquery forms kendo-ui

我正在使用包含在 <form> 中的 KendoUI 自动完成功能。如果在自动完成选项打开时按 Enter 键,则 Enter 键只会关闭选项,并且您必须再次按 Enter 键才能提交表单。监听输入上的按键来检查何时按下 Enter 甚至不起作用;第一次输入永远不会被注册。我尝试点击 change KendoUI 控件和 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();
    });

我会补充说,焦点是必要的,因为否则自动完成不会关闭...我不知道为什么会出现这种情况,因为演示关闭并且不需要任何额外的逻辑。

如有任何帮助,我们将不胜感激。

最佳答案

什么是搜索?您最初定义了吗?

当我尝试你的代码时,它在没有 focusout 的情况下工作得很好,只需单击一次,...一旦我定义了搜索。 Here我尝试过:

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

关于javascript - KendoUI 自动完成提交表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22702109/

相关文章:

javascript - react : filter array: Can I work with elements that didn't pass the test?

javascript - XML解析错误: no element found Location error in jQuery ajax

javascript - 如果没有填充父范围,AngularJS 绑定(bind)将无法工作

Javascript - 清除 div 内的所有内容

jquery 选择唯一项

javascript - 表单提交工作正常,但 ajax 存在 CORS 问题

javascript - 将值从 Controller 传递到指令

javascript - Backbone.js 扩展后将对象重命名为 "child"

javascript - 更改存储在变量中的表单值

javascript - 使用 Javascript 上传 Parse.File