1

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

});

提前致谢。

4

2 回答 2

1

用于prop设置选中的属性并让您的 if 条件正确。attr不保证对 element 和 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'));  
于 2013-09-27T21:38:17.310 回答
0

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

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

Js 小提琴演示

于 2013-09-27T21:34:51.157 回答