2011-11-01 74 views
2

我在代码中看不到任何错误。但是,当复选框打勾时,Alertbox不显示。当勾选复选框时,alertBox不显示

有没有人可以帮助我?提前致谢。

<script type="text/javascript" language="javascript" src="jquery/jquery-1.4.4.min.js"></script> 
    <script type="text/javascript" language="javascript"> 
    $(function(){ 

       if($("#checkkBoxId").attr("checked")) 
         { 
          alert("Checked"); 
         } 
         else 
         { 
          alert("Unchecked"); 
         } 

    }); 


    </script> 
    </head> 

    <body> 

     <p><input id="checkkBoxId" type="checkbox">Enable</p> 
    </body> 
+1

你真的需要使用jQuery的一个古老的版本? 1.6.4是最近的版本,在这个版本中你可以使用'.prop()',这对于获取检查状态更快更舒适。 – ThiefMaster

回答

2

你需要点击事件上的复选框绑定像

$("#checkkBoxId").click(function() { 
    if($(this).attr("checked")) { 
     alert("Checked"); 
    } 
    else { 
     alert("Unchecked"); 
    } 
}): 
+0

使用'prop'而不是'attr'。 – ThiefMaster

+1

除非您的版本号为1.6 @ThiefMaster,您可以在代码 –

+0

中看到'.change()'更适合这种情况。用户可以使用keybord而不是鼠标来更改'checked'属性。 – pltvs

-2

你要的功能附加到复选框的click事件。

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

      if($(this).prop("checked")) 
        { 
         alert("Checked"); 
        } 
        else 
        { 
         alert("Unchecked"); 
        } 

}); 
+0

使用'prop'而不是'attr'。此外,您在第一行中忘记了一些引号。 – ThiefMaster

+0

好的,我改变了它。谢谢:) –

+0

'.change()'更适合这种情况。用户可以使用keybord而不是鼠标来更改'checked'属性。 – pltvs

4
$(document).ready(function() { 
    $('#checkkBoxId').change(function() { 
     if ($(this).prop('checked')) { 
      alert('checked'); 
     } else { 
      alert('not checked'); 
     } 
    }); 
}); 
+0

使用'prop('checked')'比'is(':checked')'快。 – ThiefMaster

+0

+1为唯一正确/正确的答案到目前为止! –

+1

-1因为没有看到曼纽尔做了什么,也没有看到除了你的其他答案以外的其他答案。 – Blazemonger

0

你的代码执行恰好一次当DOM已准备就绪。所以任何更改都不会触发它。

这里的妥善解决:

$(function() { 
    $('#checkkBoxId').change(function() { 
     if ($("#checkkBoxId").prop('checked')) { 
      alert("Checked"); 
     } else { 
      alert("Unchecked"); 
     } 
    }); 
}); 
+1

道具将不适用于版本1.4.4 –

+0

啊,没有看到他使用古代版本。那么..他应该更新到1.6.4。 – ThiefMaster

+0

不能同意更多:) –