checkbox 点击搜索失去焦点_万恶的ie之checkbox,radio

在JQuery中,当给radio或checkbox添加一个change事件时,如果它的值发生变化就会触发change事件,就如同我们在

HTML中写入下代码:

οnchange="myfunction()"name="fruits">, 而我们用JQuery的代码如下:

$(document).ready(

function

(){

$("testCheckbox"

).change(

function

() {

alert("Option changed!"

);

});

});

以上代码在Firefox等浏览器中可以正常运行,即当你选中复选框或取消复选框都会弹出一个对话框,但是在IE中却不会正常执行,即你选中或取消复选框不会立即弹出对话框,

你必须在选中或取消复选框之后再点击除了复选框之外的任何一个地方

,之所以这样,据说是因为IE会等到复选框失去焦点之后才会触发change事件,目前这个问题还没有被修复,不过网上有高人已经提供了解决方案:

$(function() {

if($.brower.msie) {

$("input:checkbox").click(function() {

this.blur();

this.focus();

});

}

});

以上代码只要把checkbox就可以适用于radio, 以上代码的原理是:当改变复选框的值后,IE在等待失去焦点,但是click事件是立即触发的,因此利用click事件让复选框失去 焦点,

这样就会触发chang事件了,然后再把焦点重新转移到该复选框上。

有人可能会问为什么不直接用click事件来代替change事件,对于checkbox来说,click事件和change都可以完成同样的功能,但是对于radio来说就不一样了,

你可以连续点击同一个radio而值不变,这时就会不停的触发click事件而不会触发change事件。

转自:http://www.cnblogs.com/leesa/archive/2010/03/26/1696729.html

分享到:

2012-12-18 15:01

浏览 679

评论

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值