日期:2014-05-17  浏览次数:20726 次

Struts中怎么判断一个 html:checkbox 被选中?
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>&nbsp;</th>
<td>&nbsp;</td>
</tr>


无论我选中与否数据库插入的时候始终是1。
实在不知道问题出在哪里,
请哪位指点迷经,
先谢了!
1 楼 寄生虫 2008-07-04  
前台问题:这就是你采用这个checkbox的问题了,当checkbox未被选中的时候,value是不会传到后台的,只有选中了才会将value传到后台(前提是你用的form提交)
后台问题:是否你的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"));
}
这样就可以了
再次谢谢各位的回答