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

时间:2013-09-27 21:33:49

标签: java javascript jsp checkbox boolean

我正在研究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 个答案:

答案 0 :(得分:1)

使用prop设置已检查的属性并使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'));  

答案 1 :(得分:0)

尝试使用.prop代替.attr()

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

Js Fiddle Demo