有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何选中布尔值为真的复选框?

我正在处理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);
    }

});

提前谢谢


共 (2) 个答案

  1. # 1 楼答案

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

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

    Js Fiddle Demo

  2. # 2 楼答案

    使用prop设置checked属性并使if条件正确attr不能保证对元素和prop的布尔属性起作用See the difference here。而且条件'#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'));