Я использую автозаполнение KendoUI, заключенное в <form>
. Если вы нажмете кнопку ввода, когда параметры автозаполнения открыты, ввод только закрывает параметры, и вам нужно нажать Enter еще раз, чтобы отправить форму. Прослушивание нажатий клавиш на входе для проверки при нажатии кнопки не работает; первый вход никогда не регистрируется. Я попытался прослушивать событие change
элемента управления KendoUI и событие close
, чтобы выполнить javascript для отправки формы вручную, но я не могу получить что-либо, что делает первый вход, чтобы отправить форму без плохих побочных эффектов. Вот HTML:KendoUI Autocomplete Отправить форму
<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 было необходимо, поскольку в противном случае автозаполнение не закрывал ... Я не знаю, почему это был случай, потому что демонстрации закрываются и не нуждаются в дополнительной логике.
Любая помощь будет оценена по достоинству.
Я согласен с тем, что ваша скрипка работает так, как мне нужен мой код. Однако по какой-то причине мой автозаполненный раскрывающийся список не закрывается, когда вы нажимаете на страницу, в которой он находится. Он зависает, поэтому мне нужен бит «focusout». Это бесполезно, потому что он запускает событие изменения, которое каким-то образом пропускает «$ (« # products »). Is («: focus »)), а затем отправляет форму, если вы выходите из страницы. Любые идеи, почему мои предложения не будут закрыты, когда фокус потерян? Не уверен, что вы имеете в виду под поиском. Где вы видите элемент под названием 'search' в моем коде? Datasource добавляется после вызова ajax. –
Глупо меня ... Дух. Поиск - это var, который изначально определен, чтобы позволить мне обновить значение автозаполнения, не отправляя другой поисковый запрос. Для целей этого вопроса его необходимо устранить. –