YUI Автозаполнение: itemSelectEvent теряется с IE6 и IE7? - PullRequest
1 голос
/ 14 мая 2010

Я использую YUI Autocomplete (последняя версия загружена с использованием загрузчика на сегодня (14 мая 2010 г.), который выглядит как 2.8.1, со следующими параметрами:

ac = new YAHOO.widget.AutoComplete("mynode", "autocomp_node", 
              ac_ds, {typeAhead: true, forceSelection: true});

ac.itemSelectEvent.subscribe( function(type, args) { 
              alert("hey:" + args[2][1]); 
              $('#parent_id').val(args[2][1]);
});

ItemSelectEvent перехватывает выборки в автозаполнении и заполняет некоторые данные в родительском элементе.

Это работает на FF, Chrome, Safari и IE8. Однако в IE6 и IE7 событие никогда не срабатывает. Для репликации: в поле автозаполнения разрешите его автозаполнение, затем нажмите ввод. Это должно выбрать автозаполнение и перейти к следующему полю (это то, что он делает в других браузерах). В IE6 и IE7 кажется, что вместо этого запускается отправка формы - itemSelectEvent никогда не срабатывает (или, возможно, срабатывает после отправки формы?).

Кто-нибудь видел это? Есть обходные пути?

1 Ответ

2 голосов
/ 21 мая 2010

Ниже приведен отрывок из примера YUI "Управление автозаполнением: поиск поля A, отправка поля B с itemSelectEvent" . На самом деле, это аспект «protectDefault» в примере, который применим. Возможно, вы могли бы использовать нечто подобное, чтобы заблокировать отправку формы. Однако я не уверен, что это предотвратит запуск других событий (например, itemSelectEvent).

// Rather than submit the form, 
// alert the stored ID instead 
var onFormSubmit = function(e, myForm) { 
   YAHOO.util.Event.preventDefault(e); 
   alert("Company ID: " + myHiddenField.value); 
}; 
YAHOO.util.Event.addListener(YAHOO.util.Dom.get("myForm"), "submit", onFormSubmit); 
...