JQuery检查是否选中了复选框,仅检查onload

时间:2012-02-17 13:30:33

标签: javascript jquery

我正在尝试检查是否一直选中复选框,但我只是在页面加载时收到警报,而不是在状态发生变化时随时收到警报。

以下是代码:

<script type="text/javascript">
    $(function(){

        if ($('#myCheckBox').is(':checked')) {
          alert('Yes my checkbox is checked');
    } else {
          alert('No my checkbox is not checked');

    };

});

7 个答案:

答案 0 :(得分:5)

您必须绑定复选框的“更改”事件:

$('#myCheckBox').change(function() {

    if (this.checked) { //if ($(this).is(':checked')) {
          alert('Yes my checkbox is checked');
    } else {
          alert('No my checkbox is not checked');
    };
})

单击该复选框后,将执行处理程序。

进一步评价:

答案 1 :(得分:1)

尝试:

$('#myCheckBox').change(function(){

        if ($('#myCheckBox').is(':checked')) {
          alert('Yes my checkbox is checked');
    } else {
          alert('No my checkbox is not checked');

    };

});

这会在每次状态发生变化时调用您的函数。 http://api.jquery.com/change/

度过愉快的一天!

答案 2 :(得分:1)

您还需要订阅更改事件:

<script type="text/javascript">
    $(function(){
      var changeHandler = function () {
          if ($(this).is(':checked')) {
            alert('Yes my checkbox is checked');
          } else {
            alert('No my checkbox is not checked');
          }   
        };

      $('#myCheckbox').change(changeHandler)
                      .trigger('change');
    });
</script>

它的作用:

  1. 使用onload-event创建一个函数,用作change-event
  2. 的事件处理程序
  3. 将changeHandler注册到复选框
  4. 的changeEvent
  5. 在页面加载时触发更改事件,以便在首次加载页面时运行它(合成事件)
  6. 现在,这种方法的有趣之处在于它允许以更通用的方式使用changeHandler。由于您在处理程序中使用$(this)而不是$(selector),因此可以使用此函数进行事件委托,如下所示:

    $('body').on('change', 'input[type=checkbox]', changeHandler);
    

    这将注册changeHandler以收听整个页面上的所有更改事件复选框。

答案 3 :(得分:1)

   <script type="text/javascript">

    $('#myCheckBox').change(function() {
         if ($(this).is(':checked')) {
              alert('Yes my checkbox is checked');
        } else {
              alert('No my checkbox is not checked');

        };
    });
    <script>

答案 4 :(得分:0)

$(someFunction)是jQuery的简称“当DOM准备就绪时运行此函数”。

如果您希望在复选框与之互动时运行,则需要bind一个事件处理程序(例如click

答案 5 :(得分:0)

$('#myCheckBox').click(function() {
    if ($('#myCheckBox').is(':checked')) {
          alert('Yes my checkbox is checked');
    } else {
          alert('No my checkbox is not checked');

    };
}

答案 6 :(得分:0)

您必须在复选框的更改中调用上述功能

<input type="checkbox" name="myCheckBox" onchange="callCheckBoxChangeFunction()" value="Bike" /> I have a bike<br />