我已经用谷歌搜索了大约 2 个小时来解决以下问题(包括其他 Stackoverflow 问题):
<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 版本,并确保没有其他绑定事件干扰。有趣的是,在检索值之前添加一个 alert() 并且 IE 返回当前值:
....
// DOES WORK
alert();
alert(jQuery(this).val()); // alerts e.g. "tube"
// DOESN'T WORK
alert(jQuery(this).val()); // alerts ""
我认为这可能是一个时间问题,但试图用 setTimeout 延迟我的单个警报呼叫并没有帮助。
在此先感谢各位,我希望我只是瞎了眼,没有在 IE8 中发现另一个丑陋的行为。