明凯博客

关注网站技术,一个特立独行的程序员

IE下radio/checkbox的change事件失效的解决办法

今天写一个全选功能,在chrome和firefox下测试都正常实现效果,到了ie下死活没效果。

一番周折,测试发现在ie中勾选了以后还要点击其他位置才会触发onchange事件。

这种问题呢,有两种方式可以解决,用onclick事件代替或者用onpropertychange事件代替。

Jquery中也是有这种问题。

1
  $("#radioOne").change(function(){ alert(1); });

在FF下正常,但在IE中不能在点击了radio后立即弹出对话框。

所以,在js中判断浏览器,然后使用click,就可以让change像select那样,一旦值改变就立即触发事件。

1
2
3
  $(function () { if ($.browser.msie) {
          $('input:radio').click(function () { this.blur(); this.focus(); });
    } });

原理是利用click事件立即触发的原理,让radio的值改变后,立即失去焦点,再把焦点重新转移到该复选框上,这样就会立即触发chang事件了。

, ,

相关文章

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注