选中并取消选中复选框并阅读其状态

时间:2010-11-30 02:21:26

标签: jquery checkbox jquery-click-event

如何阅读复选框的状态并将其状态设置为可见?我正在尝试这样的事情,但它总是返回真实:

 $('.show-check').live('click', function(e) {
    e.preventDefault();

    var checked = ($(this).is(':checked'));
    if(checked == true){
       $(this).attr('checked', true); 
    }
    else{
        $(this).attr('checked', false);
    }
 });


    <li>
        <img src="" class="show-image"/>
        <span class="show-title"></span>
        <input type="checkbox" class="show-check" />
    </li>

2 个答案:

答案 0 :(得分:1)

它的工作原理如下:

 $('.show-check').live('click', function() {


var checked = ($(this).is(':checked'));

if(checked){
   $(this).attr('checked', true);
}
else{
    $(this).attr('checked', false);
}

});

我认为您无法选中该复选框,因为会阻止默认操作,即选中/取消选中该复选框

这是我的想法:

  1. 该复选框最初未选中;

  2. 单击复选框时,会触发click事件,var checked设置为true;

  3. 因为它设置为true,所以if(checked)块将始终执行;

  4. 但您可能想知道为什么UI上没有选中复选框。我认为这是因为你设置了e.preventDefault(),它告诉复选框不受点击事件的默认行为的影响,即检查它;

  5. 下次再次检查时,会发生同样的事情。

答案 1 :(得分:0)

如果使用.change()事件而不是.clecked()事件,也许这会更清楚。

您说当单击复选框时,如果选中== true而不是set checked = true,那么如果您选中它,则永远不会执行false部分。如果您将其设置为false,则情况也是如此。