我正在使用包含在 <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/