if else条件不能使用checked和unchecked

时间:2014-07-01 15:32:38

标签: jquery

在我的jQuery代码中,当我点击第二个td,其中有一个tr中的输入然后是我的代码中检查此输入如果语句没有执行它执行else语句类似,否则语句也执行给出一个解决方案。

$(function(){
    $("table.confirmit-grid >tbody  >tr >td:nth-child(3) input").prop("disabled",true);
    $("table.confirmit-grid >tbody  >tr >td:nth-child(2)").click(function(){
        if($(this).find("input").is(":checked")) // this statement execute when input is unchecked
        {
            $(this).parent().find("td:nth-child(3) input").prop("disabled",false);
        }
        else //this statement execute when input is checked
        {
            $(this).parent().find("td:nth-child(3) input").prop("disabled",true);
            $(this).parent().find("td:nth-child(3) input").prop("checked",false);
        }
    });
});

1 个答案:

答案 0 :(得分:0)

我认为你的逻辑是倒退的:

// this will be true if there are any checked boxes, so you need to negate it with a !
if($(this).find("input").is(":checked")) 

我想你想要

$(function(){
    $("table.confirmit-grid >tbody  >tr >td:nth-child(3) input").prop("disabled",true);
    $("table.confirmit-grid >tbody  >tr >td:nth-child(2)").click(function(){
        if(!$(this).find("input").is(":checked")) // this statement execute when input is unchecked
        {
            $(this).parent().find("td:nth-child(3) input").prop("disabled",false);
        }
        else //this statement execute when input is checked
        {
            $(this).parent().find("td:nth-child(3) input").prop("disabled",true);
            $(this).parent().find("td:nth-child(3) input").prop("checked",false);
        }
    });
});

//如果有任何复选框

,则为真