JQuery触发radio或checkbox的change事件

在JQuery中,当给radio或checkbox添加一个change事件时,如果它的值发生变化就会触发change事件;本文将详细介绍如何利用JQuery触发Checkbox的change事件需要了解的朋友可以参考下

早上要做一功能,checkbox被选中时,显示隐藏的层,取消选中时,再隐藏选中的层。 
初始代码如下:

复制代码代码如下:

$(function(){ 
$("#ischange").change(function() { 
alert("checked"); 
}); 
});

捣腾了半天,竟然一点反应都没有。百度了下,有高人指出上面几行代码在Firefox等浏览器中可以正常运行,即你选中复选框或取消复选框都会弹出一个对话框,但是在IE中却不会正常执行,即选中或取消复选框不会立即弹出对话框。

必须在选中或取消复选框之后再点击除了复选框之外的任何一个地方,据说是因为IE会等到复选框失去焦点之后才会触发change事件。 
改进之后的代码如下:

复制代码代码如下:

$(function(){ 
if ($.browser.msie) { 
$(‘input:checkbox‘).click(function () { 
this.blur(); 
this.focus(); 
}); 
}; 
$("#ischange").change(function() { 
alert("checked"); 
}); 
});

补充:当改变复选框的值后,IE在等待失去焦点,但是click事件是立即触发的,因此利用click事件让复选框失去焦点,这样就会触发chang事件了,然后再把焦点重新转移到该复选框上。 
如果是radio,将checkbox换成radio即可。

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

复制代码代码如下:

<input type="checkbxo" id="testCheckbox" onchange="myfunction()"name="fruits">,

而我们用JQuery的代码如下:

复制代码代码如下:

$(document).ready(function(){ 
$("testCheckbox").change(function() { 
alert("Option changed!"); 
}); 
});

以上代码在Firefox等浏览器中可以正常运行,即当你选中复选框或取消复选框都会弹出一个对话框,但是在IE中却不会正常执行,即你选中或取消复选框不会立即弹出对话框,你必须在选中或取消复选框之后再点击除了复选框之外的任何一个地方,之所以这样,据说是因为IE会等到复选框失去焦点之后才会触发change事件,目前这个问题还没有被修复,不过网上有高人已经提供了解决方案:

复制代码代码如下:

$(function () {if ($.browser.msie) {$(‘input:checkbox‘).click(function () { this.blur(); this.focus(); }); }});

以上代码只要把checkbox就可以适用于radio, 以上代码的原理是:当改变复选框的值后,IE在等待失去焦点,但是click事件是立即触发的,因此利用click事件让复选框失去 焦点,这样就会触发chang事件了,然后再把焦点重新转移到该复选框上。有人可能会问为什么不直接用click事件来代替change事件,对于checkbox来说,click事件和change都可以完成同样的功能,但是对于radio来说就不一样了,你可以连续点击同一个radio而值不变,这时就会不停的触发click事件而不会触发change事件。

时间: 2024-08-02 06:57:51

JQuery触发radio或checkbox的change事件的相关文章

JQuery Checkbox的change事件

JQuery   Checkbox的change事件 参考 http://blog.csdn.net/hbhgjiangkun/article/details/8126981 $(function(){    $("#ischange").change(function() {        alert("checked");    });}); 上面的代码没作用修改为下面即可$(function(){ if ($.browser.msie) {  $('input

jQuery操作radio、checkbox、select示例

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title> jQuery操作radio.checkbox.select示例 </title> <meta name="Generator" con

radio与checkbox的选中事件

<一>判断checkbox的选中事件 var result=$(this).find("input[type='checkbox']").prop("checked"); result 是bool类型的值 true是选中的状态 false是没选中的状态 <二>radio的选中状态 //付款方式 $('div#pay-type input[type="radio"] ').each(function (e) { var ra

jquery实用应用之jquery操作radio、checkbox、select

本文收集一些jquery的实用技巧,非常实用的哦,其中对radio.checkbox.select选中与取值的方法. 获取一组radio被选中项的值var item = $('input[@name=items][@checked]').val();获取select被选中项的文本var item = $("select[@name=items] option[@selected]").text();select下拉框的第二个元素为当前选中值$('#select_id')[0].sele

jQuery操作radio、checkbox、select总结

本文转自:http://tiame.iteye.com/blog/1493261 1.radio:单选框 HTML代码: Html代码   <input type="radio" name="radio" id="radio1" value="1" />1 <input type="radio" name="radio" id="radio2" va

jQuery操作radio、checkbox、select 集合

1.radio:单选框 HTML代码: <input type="radio" name="radio" id="radio1" value="1" />1 <input type="radio" name="radio" id="radio2" value="2" />2 <input type="radi

JavaScript、jQuery获取radio、checkbox选中的值

1 <div > 2 性别:<input type="radio" id="Radio1" name="rdoSex" value="男"/>男 3 <input type="radio" id="Radio2" name="rdoSex" value="女"/>女 4 <input type="

Jquery获取select 控件的change事件时选中的值

HTML代码如下: <div class="col-sm-9 col-xs-12"> <select id="groupid" class="form-control" style="float: left" name="groupid"> <option value="0">请选择</option> <option value=&q

jQuery触发&lt;a&gt;标签的点击事件无效

1 <a id="workFrame" href="pages/work.html" target="FrameBox">首页</a> 2 3 $("#workFrame").tigger("click"); 上述的代码,其实挺正常的,但是怎么也触发不了a标签的click事件.百度一下,解决方案如下 1 <a id="workFrame" href=&quo