如果布尔值为真,如何选中复选框

How to checked checkbox if boolean value is true?

本文关键字:何选中 复选框 布尔值 如果      更新时间:2023-09-26

我正在研究jsp应用程序,我有一个带有复选框的表单,我从数据库中检索数据,其中有一个名为"principal"的位字段,我可以获取这个字段的值,这是一个布尔值,但我不能根据"principal"的值选中或取消选中复选框。

这是我的 JSP 代码:

<tr>
 <td>Principal:</td>
  <td colspan="2">
   <input type="checkbox" id="a_principal" name="a_principal" value="<%=directorio.isPrincipal()%>"/>
  </td>
</tr>

Javascript代码:

$(function (){
    if('#a_principal' == true){
         $("input:checkbox").attr('checked', true);
    }else{
        $("input:checkbox").attr('checked', false);
    }
    
});

尝试使用.prop而不是.attr()

$(function (){
    if($('#a_principal').val()== "true"){           
         $("input:checkbox").prop('checked',true);
    }else{
        $("input:checkbox").prop('checked', false);
    }
});

Js 小提琴演示

使用 prop 设置选中的属性并正确获取 if 条件。 attr不能保证反对元素和 prop 的布尔属性。在此处查看差异。此外,条件'#a_principal' == true总是正确的。

$("input:checkbox").prop('checked', $('#a_principal').length); 
// i dont know if you meant $('#a_principal').prop('checked') then
$("input:checkbox").prop('checked', $('#a_principal').prop('checked'));  
//but here :checkbx generic selector will select a_principal as well, so be specific 

提供完整的 html 将有助于以更好的方式解决您的问题,但请尝试以下操作:

   var $principal = $('#a_principal');
   $("input:checkbox").not($principal).prop('checked', $principal.prop('checked'));