我正在使用封装在<form>
中的KendoUI自动填充功能。如果在自动填充选项打开时按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();
});
我补充说焦点是必要的,因为否则自动完成没有关闭...我不知道为什么会这样,因为演示关闭并且不需要任何额外的逻辑
任何帮助都将不胜感激。