日期:2014-05-18  浏览次数:20439 次

JS复选框默认选择数据库中的值
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
  <title>无标题页</title>
<script language="JavaScript" type="text/javascript">

var B="D_D,D_M";


for (i=0;i<cbItem.length ;i++ )
{
  tmpB=B.split(", ");
  for (j=0;j<tmpB.length ;j++ )
  {
  if(tmpB[j]==cbItem[i].value)
  {cbItem[i].checked=true;break;}
  }
}



</script>
</head>
<body>
<form id="form1" >
  <div>
  <input id="" class="cbItem" name="cbItem" type="checkbox" value="D_A"/>添加&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  <input id="" class="cbItem" name="cbItem" type="checkbox" value="D_D"/>删除&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  <input id="" class="cbItem" name="cbItem" type="checkbox" value="D_M"/>编辑
  </div>
  </form>
</body>
<html>
这样写了,页面没反应,没执行

------解决方案--------------------
有个三个问题:
1,你想要页面执行这个方法,但是没有显示的调用去触发。可以写在window.onload方法中
2. 明白你想要取到checkbox的集合,但是不能直接用name来取,用document.getElementsByName("cbItem")可以得到checkbox对象的数组
3.你要split的字符串("D_D,D_M")里面逗号后面没有空格,因此split的条件中也不能有空格了,这样才能split对

可以试试这段,应该是可以的。

[code=HTML][/code]<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>无标题页</title>

<script language="JavaScript" type="text/javascript">
window.onload = function() { // 1. 触发方法 
var B = "D_D,D_M";

var cbItem = document.getElementsByName("cbItem"); // 2. 找到对象

for (i = 0; i < cbItem.length; i++) {
tmpB = B.split(","); // 3. 逗号后面别跟着空格,否则没法正确spilt
for (j = 0; j < tmpB.length; j++) {
if (tmpB[j] == cbItem[i].value)
{ cbItem[i].checked = true; break; }
}
}

}

</script>

</head>
<body>
<form id="form1">
<div>
<input id="" class="cbItem" name="cbItem" type="checkbox" value="D_A" />添加&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<input id="" class="cbItem" name="cbItem" type="checkbox" value="D_D" />删除&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<input id="" class="cbItem" name="cbItem" type="checkbox" value="D_M" />编辑
</div>
</form>
</body>
<html>

------解决方案--------------------
因为你写的var B = "D_D,D_M"中逗号后面没有空格,所有B.split(",")的时候,括号中逗号后面也不能有空格,否则就没法split成两个字符串了。仔细看看你最开始的code,是有空格的。
------解决方案--------------------
document有forms这个属行,想通过id找到相应的form以及其中的元素的话的话,应该这么用:
var checkobj = document.forms("form1").all("a")

另外
if(checkobj[i].value==tmpB)
{...}
tmpB是split之后返回的数组,因此比较时应该用其中的元素:tmpB[j]

这样改下应该就行了。
------解决方案--------------------
想要通过form的id找到form和其中的元素的话,应该这么用:
var checkobj = document.forms("form1").all("a&