0

我有一个函数,它遍历一个表并选中 a 中的一些复选框<td>,现在可以在要选择的复选框不同的情况下执行多次。但我的问题是,如果我在一个实例中执行该步骤两次,则选择无法正常工作,表格位于

<div>
<table> </table>
</div>

复选框代码

// global
var selectedId  =""


function populate(Id){


if(selectedId != Id){

    selectedId = Id;

    // first uncheck previous selection if any 

    // selective  is the class of check box <td>
    // <td class="selective"><input type="checkbox" name="packId" 
    // value="${pack.packId}"></td>

    $('.selective input:checkbox').each(function () {
      var prevCheckedVal = (this.checked ? $(this).val() :"");
      if(prevCheckedVal != ""){
         $(this).find("input[type=checkbox]").attr("checked", false);
      }
    });

    // now select check boxes for present selection 
    $("tr.allVPClass").each(function() {
       $this = $(this)
       var catId = $this.find("input.IdInVpClass").val();
       if(selectedId == catId){
        $(this).find("input[type=checkbox]").attr("checked", true);
       }
    }); 
}
// open the dialoge
$("#dialog-form").dialog("open");
}

该表填充在多个 div 中。如果我打开单独的 div,那么它可以工作,但如果我两次打开同一个 div,则不选择/选中任何复选框

4

2 回答 2

0

您应该使用.prop()而不是.attr()作为复选框

$(this).find("input[type=checkbox]").prop("checked", true);
于 2013-08-21T08:18:28.567 回答
0

为了更改检查状态,您需要使用.prop()而不是.attr()

$(this).find("input[type=checkbox]").prop("checked", false);

另请阅读内容和prop vs attr

于 2013-08-21T08:18:01.320 回答