Добрый день!
keyword_autocomplete позволяет сохранять вводимые в поисковую строку фразы и затем при новом вводе предлагать подходящие наиболее популярные варианты фраз.
Но, во время того, как keyword_autocomplete думает (подбирает фразы), на пару секунд блокируется сабмит. Т.е., если я ввел что-то в поиск, либо просто вставил туда что-нибуть через ctrl+v, и сразу нажимаю ентер, или кликаю на кнопку поиска мышью, то ничего не происходит. И пользователь сидит и ждёт, что произойдёт, а ничего не происходит. И приходится либо ещё раз нажать ентер, либо уйти с сайта.
Как убрать эту блокировку поиска?
Ответы
Кароче, товарищи.
Всё там просто оказалось.
Переопределил одну функцию, и всё заработало как надо. А то раньше ентер скрывал всплывающее окно вместо того, чтобы начинать поиск.
~~~php
Drupal.jsAC.prototype.onkeyup = function (input, e) {
if (!e) {
e = window.event;
}
switch (e.keyCode) {
case 16: // shift
case 17: // ctrl
case 18: // alt
case 20: // caps lock
case 33: // page up
case 34: // page down
case 35: // end
case 36: // home
case 37: // left arrow
case 38: // up arrow
case 39: // right arrow
case 40: // down arrow
return true;
case 9: // tab
case 27: // esc
this.hidePopup(e.keyCode);
return true;
case 13: // enter
this.input.form.submit();
return true;
default: // all other keys
if (input.value.length > 0)
this.populatePopup();
else
this.hidePopup(e.keyCode);
return true;
}
};
~~~
Судя по коду модуля https://www.drupal.org/project/keyword_autocomplete - он использует autocomplete.js из ядра Drupal 6.
Поизучайте misc/autocomplete.js - я не нашел в нем прямой блокировки каких-либо элементов... возможно, вам нужно посмотреть на функцию Drupal.jsAC.prototype.onkeyup (здесь есть какая-то обработка клавиши Enter) и переопределить её в своем кастомном модуле.
Спасибо за ответ, но я врятли смогу это сделать сам. Вы сможете мне в этом помочь (не безвозмездно)? Судя по умным словам, которые Вы пишите, Вы быстро с этим справитесь :)
Да я-то не против, пишите в скайп, посмотрим.
Посмотрите в сторону https://www.drupal.org/project/search_api_autocomplete
Не подойдет. У меня Drupal 6.
Отлично! А говорили, что вряд ли справитесь :)
Ага, а Вы говорили, что часа 2-3 надо :)