Я прибегая к помощи в течение 2 часов, чтобы установить следующую задачу (другие StackOverflow вопросы включены):Internet Explorer 8 получить значение RadioButton
<script type="text/javascript">
jQuery(document).ready(function() {
jQuery('input[type="radio"]').unbind('click.preset')
.bind('click.preset', function() {
doingStuffWith(jQuery(this).val());
});
});
</script>
<input type="radio" name="lightType" value="led" />
<input type="radio" name="lightType" value="tube" />
Как вы можете видеть, я просто пытаюсь получить текущее значение группы переключателей «lightType» для работы с ним. Это работает как шарм в Firefox/Safari/Chrome, но IE8 дает мне трудное время, просто вернув пустую строку.
Я уже пробовал несколько хаков из других вопросов, таких как привязка события изменения к радиокнопкам и принуждение IE8, чтобы запустить его, размыв щелкнув переключатель и т. Д. Может быть, я , просто страдая от слепоты прямо сейчас.
Я работаю с последней версией jQuery, и я уверен, что никакие другие связанные события не мешают. Интересно, хотя, добавив предупреждение() перед извлечением значения и IE возвращает текущее значение:
....
// DOES WORK
alert();
alert(jQuery(this).val()); // alerts e.g. "tube"
// DOESN'T WORK
alert(jQuery(this).val()); // alerts ""
Я думал, что это может быть проблемой синхронизации, но при попытке задержать мой единственный вызов предупреждения SetTimeout не помог.
Спасибо заранее, я надеюсь, что я просто слепой и не нашел другого уродливого поведения в IE8.
Помогите мне узнать, почему не только: 'JQuery ('вход [тип =" радио "] '). on (' change ', function() { doStuffWith (jQuery (this) .val()); });' –
Слушатель изменений в IE запускает **, когда управление теряет фокус **, которая соответствует спецификации W3C, но не интуитивно понятна, а не как другие браузеры ее реализовали (они эффективно используют ее как клик для флажков и переключателей). Следовательно, для этих элементов обычно используется прослушиватель кликов. – RobG