【问题标题】:How to checked checkbox if boolean value is true?如果布尔值为真,如何选中复选框?
【发布时间】:2013-10-04 07:40:58
【问题描述】:

我正在开发 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);
    }

});

提前致谢。

【问题讨论】:

    标签: java javascript jsp checkbox boolean


    【解决方案1】:

    使用prop 设置checked 属性并获得正确的if 条件。 attr 不能保证对 element 和 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'));  
    

    【讨论】:

      【解决方案2】:

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

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

      Js Fiddle Demo

      【讨论】:

        猜你喜欢
        • 2013-12-09
        • 1970-01-01
        • 2018-03-27
        • 2015-04-13
        • 1970-01-01
        • 2020-03-02
        • 1970-01-01
        • 2016-04-27
        • 1970-01-01
        相关资源
        最近更新 更多