IE <9 привязывает событие к невидимому радио - PullRequest
0 голосов
/ 02 февраля 2012

У меня проблемы с onChange() и переключателями в стиле display:none;, которые должны срабатывать по ярлыку, в который они помещены, по щелчку

Обработчик onChange () не активируется в IE8, IE7, когда к переключателям применяется следующий CSS-код.

#questionFrm input[type="radio"] {
    display:none;
}

Другой метод, который я попробовал, заключался в перемещении элемента формы за пределы экрана аналогично тому, как много раскрывающихся меню работают. Firefox, однако, отказывается переместить переключатель с экрана.

#questionFrm input[type="radio"] {
    position:absolute;
    top:-99;left:-99;
}

Радио скрыто, красиво, но не работает - http://jsfiddle.net/fHTwr/

Радио показано, некрасиво, но работает - http://jsfiddle.net/fHTwr/1/

1 Ответ

0 голосов
/ 02 февраля 2012

Сначала попробуйте использовать onClick (), если он не работает, вы можете сделать что-то вроде этого:

<html>
  <head>
    <script>
var currVal = 0;
function changeIt() {
    document.getElementById('changeMe').value = currVal++;
    document.getElementById('changeMe').onchange();
}
function handle_change(elem) {
    alert(elem.value);
}

    </script>
  </head>
  <body>

<input type="button" onclick="changeIt()" value="Change It"/>
<input id="changeMe" type="text" value="" style="display: none;" onchange="handle_change(this)"/>

  </body>
</html>
...