IE没有检测到复选框的jquery更改方法

cof*_*tor 10 checkbox jquery internet-explorer

以下代码适用于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;
});
Run Code Online (Sandbox Code Playgroud)

简单地说,我没有像预期的那样得到那个警报弹出窗口.
我甚至尝试过这种方式:

$("#checkbox_ID").change(function(){

   if( $('#'+$(this).attr("id")'+:checked').attr('checked',false))
   { 
       var value = "1"; 
   } 
   else
   { 
       var value = "0"; 
   } 
   alert(value);

   return false;
});
Run Code Online (Sandbox Code Playgroud)

这是简单的复选框输入: <input class="prod" type="checkbox" name="checkbox_ID" id="checkbox_ID" value="1"/>

有人知道IE是否需要不同的jquery方法?或者我的代码刚刚关闭?

sbl*_*lom 6

如果在单击复选框后单击其他位置,它可能会起作用.IE很奇怪.

可能尝试类似的东西:

$(function () {
  if ($.browser.msie) {
    $('input:checkbox').click(function () {
      this.blur();
      this.focus();
});
Run Code Online (Sandbox Code Playgroud)

更多信息:http://norman.walsh.name/2009/03/24/jQueryIE


Jay*_*Jay 5

正如使用IE7及以下的sblom所指出的那样,你需要使用该元素模糊才能触发此动作,IE及其他浏览器的后续版本不需要该元素明确失去焦点,只需更改即可触发此事件(如下图所示)例).

我相信你的问题可能是你试图在超出范围时访问'value'变量.

$("#checkbox_ID").change(function(){
var value;
if($(this).is(':checked'))
{ 
    value = "1"; 
}
else
{ 
    value = "0"; 
} 
alert(value);

return false; 
});
Run Code Online (Sandbox Code Playgroud)

这是一个工作预览,请注意,因为您在函数末尾返回false,它会将复选框重置为其先前的值,因为您已取消了单击的效果.