我正在研究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);
}
});
先谢谢。
答案 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);
}
});