以下代码在FF,Safari,Chrome中工作.但IE正在给我问题.
当选中复选框时,我无法让IE检测到它.
$("#checkBox_ID").change(function(){ if($('#'+$(this).attr("id")).is(':checked')) { var value = "1"; } else { var value = "0"; } alert(value); return false; });
简单来说,我没有像预期那样得到那个警报弹出窗口.
我甚至以这种方式尝试过:
$("#checkBox_ID").change(function(){ if( $('#'+$(this).attr("id")'+:checked').attr('checked',false)) { var value = "1"; } else { var value = "0"; } alert(value); return false; });
以下是简单的复选框输入:< input class =“prod”type =“checkBox”name =“checkBox_ID”id =“checkBox_ID”value =“1”/>
解决方法
正如IE7及以下版本的sblom所指出的那样,您需要将该动作的元素模糊起来,IE和其他浏览器的更高版本不需要明确失去焦点的元素,只需更改即可触发此事件(如下图所示例).
我相信你的问题可能在于超出范围的时候你试图访问“值”变量.
$("#checkBox_ID").change(function(){ var value; if($(this).is(':checked')) { value = "1"; } else { value = "0"; } alert(value); return false; });
Here is a working preview,请注意,因为在函数结束时返回false,因此将复选框重置为其先前的值,因为已取消点击效果.