Получение значения из поля выбора с помощью jQuery - PullRequest
1 голос
/ 08 ноября 2011

У меня есть простой выбор выбора, и я использую .val () jQuery, чтобы получить выбор из него.

По какой-то причине он выдает ошибку «Объект не поддерживает это свойство или метод» в Internet Explorer 8, первую ошибку, которую я когда-либо видел в jQuery.

Я повторил эту ошибку на http://jsfiddle.net/gWvwS

Что я делаю не так? Кажется, довольно прямо вперед ...

Ответы [ 6 ]

3 голосов
/ 08 ноября 2011

Попробуйте:

var isplay_entry_form = $('#display_entry_form').val();
alert(isplay_entry_form);

display_entry_form в глобальном окне на самом деле является элементом. Это намного менее известно, потому что это действительно плохо и не должно использоваться. Итак, вы перезаписываете его в IE.

Фиксированный пример для IE8: http://jsfiddle.net/gWvwS/7/

2 голосов
/ 08 ноября 2011

Переменные Javascript с тем же именем, что и элементы DOM, не поддерживаются IE. Похоже, что IE использует общий механизм для адресации элементов DOM по id и адресации переменных javascript. Это означает, что любой объект (элемент DOM или javascript var), объявленный позже в источнике, является тем, который используется. Это может привести к ошибке «объект не поддерживает это свойство или метод» при попытке доступа к переменной javascript. ( источник )

Это должно работать:

display_entry_form_value = $('#display_entry_form > option:selected').val();
alert(display_entry_form_value);
1 голос
/ 08 ноября 2011

Ваш документ содержит элемент с именем display_entry_form.В IE именованные элементы доступны глобально через их имя.Таким образом, вы должны либо использовать var (чтобы объявить новую локальную переменную [Требуется проверка] ), либо выбрать другое имя.

var other_name = $('#display_entry_form').val();
alert(other_name);

Fiddle http://jsfiddle.net/gWvwS/5/

1 голос
/ 08 ноября 2011

Полагаю, это связано с тем, что значение принадлежит опции, а не выбору.

Попробуйте

$('select#display_entry_form option:selected').val();
0 голосов
/ 08 ноября 2011

Тег <select> не имеет атрибута value, а атрибут selectedIndex.

0 голосов
/ 08 ноября 2011

Я обновил jsfiddle для исправления кода:

http://jsfiddle.net/gWvwS/6/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...