java 如果布尔值为真,如何勾选复选框?

xuo3flqw  于 2023-01-07  发布在  Java
关注(0)|答案(2)|浏览(161)

我在jsp应用程序上工作,我有一个表单,有一个复选框,我从我的数据库中检索数据,有一个名为“主要”的位字段,我可以得到这个字段的值,这是一个布尔值,但我不能根据“主要”的值选中或取消选中复选框。
下面是我的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);
    }
    
});
sbdsn5lh

sbdsn5lh1#

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

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

Js Fiddle Demo

ep6jt1vc

ep6jt1vc2#

使用prop来设置checked属性,并使if条件正确。attr不能保证对element和prop的布尔属性有效。请看这里的区别。另外,条件'#a_principal' == true总是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'));

相关问题