2009-10-21 3 views
0

Я улавливаю ввод на клавиатуре в моей форме, чтобы предотвратить его отправку формы, если это не последний вход; в противном случае он действует как вкладка (находит следующий вход и фокусируется на нем).Обнаружить, когда отображается автозаполнение

Любые идеи о том, как не триггер event.preventDefault() при выборе автозавершения браузера?

+0

Я только что попробовал это на firefox и узнал, что автозаполнение даже не обнаружено firebug, то есть вы не можете его осмотреть. Я предполагаю, что уменьшите шансы на обнаружение этого из JavaScript –

+0

в любом случае, посмотрите на это http://stackoverflow.com/questions/1567610/browser-textbox-autocomplete-event-when-does-this-happen –

ответ

0

Я не знаю, если вы используете определенный плагин, или если у вас есть возможность легко модифицировать исходный код автозаполнения, но я хотел бы попытаться сделать что-то вроде этого:

  • Find функция, которая используется для запуска отображения автозаполнения
  • Установите логическое значение, когда видимость автозаполнения в срабатывании (верно для видимого, лжи для не)
  • Проверьте состояние логического значения всякий раз, когда вы пытаетесь (или табу)

Обратите внимание, что вам нужно сделать общедоступным логическое значение в контексте объекта автозаполнения.

Опять же, не зная специфику, если ваша реализация, трудно сказать, как лучше изменить его, но он может работа что-то вроде этого:

var Autocomplete = { 
    bIsVisible: false, 
    display: function() { 
    // toggle visibility of the autocomplete 
    this.bIsVisible = !this.bIsVisible; 
    } 
} 

Вы бы могли бы использовать его, делая что-то вроде этого :

alert(Autocomplete.bIsVisible); // returns false 
Autocomplete.display(); // triggers the display of the autocomplete 
alert(Autocomplete.bIsVisible); // returns true 
+0

I Я не использую плагин для автозаполнения, я использую автозаполнение браузера. это будет работать иначе – SethZanderJensen

Смежные вопросы