Автозаполнение комбинированного списка сбрасывается при потере фокуса - только IE - PullRequest
1 голос
/ 23 ноября 2010

Я использую jquery.ui.autocomplete для нескольких комбинированных списков на странице. Только в IE, выпадающий список сбрасывается при потере фокуса (onBlur). Никакая отладка JS не может выявить причину. Есть предложения?

Ответы [ 2 ]

2 голосов
/ 23 ноября 2010

Хорошо, вот что я придумала.Я использовал ваш код и повторил вашу ошибку.

Причина, по которой IE отличается, скажем ... firefox, заключается в следующем:

                                    change: function (event, ui) {
                                        if (!ui.item) {

В Firefox ui.item не равен нулюв IE это так.Так что в IE он должен получить фактические значенияfoo 'атрибут значения и сравните с тем, что в текстовом поле.

Вот проблема:

value = "foo" должно точно соответствовать тому, что находится в> foo <</p>

<option value="5">Five</option> 

Заставит его очищать поле при размытии

<option value="Five">Five</option>

Не будет

В Firefox и Chrome они проходят пользовательский интерфейс, поэтому они не получают эту проверку, просто продолжается и все круто.Убедитесь, что ваши значения точно соответствуют тексту параметра.

0 голосов
/ 09 декабря 2010

анализ superfro верен, но вы можете использовать option элементы, где значение отличается от текста, если вы измените эту единственную строку кода:

if (this.value.match(matcher)) {

на:

if ($(this).text().match(matcher)) {

Таким образом, вы совпадаете с ТЕКСТОМ внутри <option value="VALUE">TEXT</option> вместо ЗНАЧЕНИЯ.

...