Как я могу узнать, какое радио выбрано через jQuery под IE7 и IE8? - PullRequest
4 голосов
/ 09 декабря 2011

Основываясь на этом вопросе выбрано радио

Я использую этот способ

<input type="radio" class="fp" value="q" name="fp" checked>
fp = $('input[name=fp]:checked').val();
alert(fp);

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

Но это не работает под IE7 и IE8.Всегда есть " Объект не поддерживает это свойство или метод ".Есть предложения?

Ответы [ 6 ]

2 голосов
/ 09 декабря 2011

Объявите переменную перед ее использованием:

http://jsfiddle.net/5cjK7/13/

var fp = $('input[name=fp]:checked').val();

alert(fp);
2 голосов
/ 09 декабря 2011

Вам просто нужно было установить значение в переменную, как показано:

var fp = $("input[name='fp']:checked").val();
alert(fp);

Пример

1 голос
/ 09 декабря 2011

IE может иметь неожиданное поведение при использовании псевдо-селекторов attr или prop (1.6 +)

fp = $("input[name='fp']").filter(function(){return $(this).attr("checked");}).val();
0 голосов
/ 11 июня 2016

В моем случае я получал такое поведение, потому что отправка формы вызывала функцию, которая заменяла html формы и затем проверяла наличие проверенного элемента:

var sizeSelected = $(this).find("input[name='size']:checked").val();

Оглядываясь назад, странно, что это работает в Chrome, Firefoxи сафари, но это так.Только IE / Edge бонки с sizeSelected == null.Решение состоит в том, чтобы проверить результаты формы перед очисткой / заменой html формы.

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

Вы не закрываете свой элемент inout и атрибут. checked должно иметь значение как;

<input type="radio" class="fp" value="q" name="fp" checked="checked" />

Также; - Вам нужно объявить переменную перед ее использованием. - Селектор jQuery должен содержать кавычки. - Селектор возвращает коллекцию элементов, поэтому вы должны извлечь первый удар, возможно, используя first().

var fp = $('input[name="fp"]:checked').first().val();
0 голосов
/ 09 декабря 2011

Это может показаться очень простым, но я полагаю, что проблема связана с тем фактом, что вы присваиваете значение переменной с именем "fp", которая совпадает с именем элемента формы. В Internet Explorer уже есть переменная в области видимости с именем «fp», которая сама является элементом переключателя. Присвоение строкового значения этой переменной недопустимо. Вы можете решить это одним из двух способов:

// Declare a new variable
var fp = $('input[name=fp]:checked').val();
alert(fp);

или ...

// Assign to a new variable in global scope (not recommended)
xy = $('input[name=fp]:checked').val();
alert(xy);
...