[英]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
? 您最初有定义吗?
当我尝试了您的代码时,只要没有定义搜索,就可以正常工作,而无需focusout
, focusout
单击一下……。 这是我尝试过的:
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.