IE< 9将事件绑定到不可见的无线电

时间:2012-02-01 21:25:46

标签: javascript html forms hidden radio

我遇到问题onChange()和样式为display:none;的单选按钮应该由它们被包装的标签触发。

当以下CSS应用于单选按钮时,onChange()处理程序在IE8,IE7中不会激活。

#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 :(得分:0)

首先尝试使用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>