html:checkbox中本没有值,我要判断它是否被选中,如果选中把它的值设为1,没有选中把它的值设为0;
我的代码如下:
1.js
<script type="text/javascript">
function getValue()
{
var ischecked=document.getElementById("iseditable");
if(ischecked.checked==true)
{
document.getElementById("iseditable").value=1;
alert("***1***"+document.getElementById("iseditable").value);
}
else
{
document.getElementById("iseditable").value=0;
alert("***0***"+document.getElementById("iseditable").value);
}
}
</script>
2.html:checkbox
<tr>
<th>是否可编辑</th>
<td><html:checkbox property="dictIseditable" styleId="iseditable" onclick="getValue();" value="0"></html:checkbox></td>
<th> </th>
<td> </td>
</tr>
无论我选中与否数据库插入的时候始终是1。
实在不知道问题出在哪里,
请哪位指点迷经,
先谢了!
1 楼
寄生虫
2008-07-04
前台问题:这就是你采用这个checkbox的问题了,当checkbox未被选中的时候,value是不会传到后台的,只有选中了才会将value传到后台(前提是你用的form提交)
后台问题:是否你的action作用域是单例,值未被重新覆盖?
后台问题:是否你的action作用域是单例,值未被重新覆盖?
2 楼
bingtears
2008-07-04
我觉得这段代码本身没有问题。你在写数据到数据库的时候,写动作的位置 应该查看一下
3 楼
JKBoss
2008-07-08
谢谢各位了
在同学的帮助下
我解决问题了
原来 html:checkbox 在默认情况下的值是 on
我就把 ActionForm 里面的数据类型改为了 boolean 类型
然后直接在 Action 里面判断是 true or false
boolean iseditable=false;
iseditable=dictForm.isDictIseditable();
if(iseditable==true){
bdv.setDictIsEditable(Byte.parseByte("1"));
}else{
bdv.setDictIsEditable(Byte.parseByte("0"));
}
这样就可以了
再次谢谢各位的回答
在同学的帮助下
我解决问题了
原来 html:checkbox 在默认情况下的值是 on
我就把 ActionForm 里面的数据类型改为了 boolean 类型
然后直接在 Action 里面判断是 true or false
boolean iseditable=false;
iseditable=dictForm.isDictIseditable();
if(iseditable==true){
bdv.setDictIsEditable(Byte.parseByte("1"));
}else{
bdv.setDictIsEditable(Byte.parseByte("0"));
}
这样就可以了
再次谢谢各位的回答