以下代码在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,因此将复选框重置为其先前的值,因为已取消点击效果.