的8 GET价值我一直在谷歌上搜索约2小时,以解决以下问题(包括其他问题#1):Internet Explorer的单选框
<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(){ doingStuffWith(jQuery(this).val()); });' – 2013-03-20 23:27:24
当控件失去焦点**时,IE中的更改侦听器触发**,这是根据W3C规范,但不直观,而不是其他浏览器如何实现它(他们有效地使用它作为一个单击复选框和单选按钮的侦听器)。因此,通常在这些元素上使用点击侦听器。 – RobG 2013-03-21 00:05:07