2011-12-01 2 views
0

Я обертываю кнопку радиона, чтобы дать им лучший стиль, используя css и jquery для обработки выбора радиона.Проблема с JQuery IE при получении статуса переключателя

Я использую этот HTML, чтобы обернуть входное радио элемента:

<button class="radio-button inches inches-selected"> 
    <input type="radio" id="inches" name="unit" value="inches" checked="checked"> 
</button> 

Все хорошо работает, как ожидается, в каждом браузере, но в IE, когда я пытаюсь получить проверенный статус (по умолчанию устанавливаются в HTML) Я получаю "undefined".

Я пробовал:

$("#inches").is(":checked"); 
$("#inches").attr("checked"); 
$("input[value=inches]").is(":checked"); 

, но я всегда получаю "неопределенные".

Любое предложение?

+0

Возможно, проблема '', завернутая в '

+0

'document.getElementById (" дюймы "). Checked'? Обертка ввода с помощью кнопки кажется странным способом обойти вещи - попробовали ли вы ее обернуть в элемент ярлыка и стилировать это? Вы подтвердили, что работает селектор jQuery? Например, что вы получаете с 'alert ($ (" # inches "). Length);' или '$ (" # inches ") [0] .checked'? – nnnnnn

+0

Нет сообщений об ошибках, код просто не работает, потому что он не может найти элемент. С firebug-lite (js-версия) я не вижу вход в DOM. Может быть, я должен попытаться сохранить за пределами кнопки ... он был реализован с самой jquery (выполненной во время выполнения), и он работал хорошо в каждом браузере, тогда я решил удалить этот js, чтобы сделать это напрямую с HTML ... Я думаю Я снова использую версию JS. –

ответ

0

Я не думал, что вы можете обернуть <input> в <button>. Но при условии, что вы можете, вы не должны использовать селектор $("input[value=inches]"), поскольку он также будет выбирать любые другие элементы ввода (например, текстовые поля), которые имеют inches в качестве его текущего значения. Кроме этого, я не знаком с техникой обертывания кнопок, поэтому я с подозрением отношусь к этому подходу в целом.

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