首页 新闻 会员 周边

js实现复选框的勾选

0
悬赏园豆:30 [已解决问题] 解决于 2012-12-13 16:03

我获取了一组复选框的值,放到已隐藏域中,现在要根据隐藏域的值能够相应的勾选复选框。

//下面是一组复选框和应藏域

     <input id="Checkbox1" type="checkbox" value="技术方案执行" />技术方案执行
                            <input id="Checkbox2" type="checkbox" value="文明施工" />文明施工
                            <input id="Checkbox3" type="checkbox" value="文件记录" />文件记录
                            <input id="Checkbox4" type="checkbox" value="成品保护"/>成品保护
                            <input id="Checkbox5" type="checkbox" value="其他" onclick="Text1.disabled=!this.checked;if (!this.checked) Text1.value=''">其他
                            <input id="Text1" type="text" disabled style="width: 284px" name="Text1"/>

//勾选复选框代码
function CheckBox()
{
  var arry= new Array();
  var checkbox1=document.getElementByID("Checkbox1");
  var checkbox2=document.getElementByID("Checkbox2");
  var checkbox3=document.getElementByID("Checkbox3");
  var checkbox4=document.getElementByID("Checkbox4");
  var checkbox5=document.getElementByID("Checkbox5");
  var hidden=document.getElementByID("Hidden1");
  arry[]=hidden.split(',');
  for(var i=0,i<arry.length;i++)
  {
     if(arry[i]=="技术方案执行")
     checkbox1.checked=true;
     if(arry[i]=="文明施工")
     checkbox2.checked=true;
     if(arry[i]=="文件记录")
     checkbox3.checked=true;
     if(arry[i]=="成品保护")
     checkbox4.checked=true;
     if(arry[i]=="其他")
     checkbox5.checked=true;
  }
  alert("asdffds");
}

帮忙看下那里出错了?或者有更好的方法不胜言谢

cici.fan的主页 cici.fan | 初学一级 | 园豆:46
提问于:2011-04-13 00:50
< >
分享
最佳答案
1

var list = document.getElementsByName("cb");       

function Check(obj) {
            obj = ',' + obj + ',';
            for (i = 0; i < list.length; i++) {
                if (obj.indexOf(',' + list[i].value + ',') >= 0) {
                    list[i].checked = true;
                }
            }
        }

 

后台:

Script.AddScriptStart(this.Page, "myscript", string.Format("Check('{0}')", hdfList.Value));

收获园豆:5
like%'远远'% | 小虾三级 |园豆:635 | 2011-04-14 13:16
其他回答(5)
0

arry=hidden.split(',');

收获园豆:2
慧☆星 | 园豆:5640 (大侠五级) | 2011-04-13 08:53
同意
支持(0) 反对(0) 茂茂 | 园豆:2892 (老鸟四级) | 2011-04-13 09:11
不对的呀,说没有该属性
支持(0) 反对(0) cici.fan | 园豆:46 (初学一级) | 2011-04-13 09:18
是这样的
arry=hidden.value.split(',');
支持(0) 反对(0) cici.fan | 园豆:46 (初学一级) | 2011-04-13 09:35
0

能否把你的需求说明白一点?谢谢.

DYStudio.Net | 园豆:1747 (小虾三级) | 2011-04-13 09:00
0

    <body>
        <input id="Checkbox1" type="checkbox" value="技术方案执行" />技术方案执行
                            <input id="Checkbox2" type="checkbox" value="文明施工" />文明施工
                            <input id="Checkbox3" type="checkbox" value="文件记录" />文件记录
                            <input id="Checkbox4" type="checkbox" value="成品保护"/>成品保护
                            <input id="Checkbox5" type="checkbox" value="其他" onclick="Text1.disabled=!this.checked;if (!this.checked) Text1.value=''"/>其他
                            <input id="Text1" type="text"  disabled="disabled" name="Text1"/>
                            <input id="Hidden1" type="hidden" value="技术方案执行,文件记录"/>
               <script language="javascript" type="text/javascript">
                   CheckBox();
                   function CheckBox() {
                       var arry = new Array();
                       var checkbox1 = document.getElementById("Checkbox1");
                       var checkbox2 = document.getElementById("Checkbox2");
                       var checkbox3 = document.getElementById("Checkbox3");
                       var checkbox4 = document.getElementById("Checkbox4");
                       var checkbox5 = document.getElementById("Checkbox5");
                       var hidden = document.getElementById("Hidden1");
                       arry = hidden.value.split(',');
                       alert(arry.length);
                       for (var i = 0; i < arry.length; i++) {
                           if (arry[i] == "技术方案执行")
                               checkbox1.checked = true;
                           if (arry[i] == "文明施工")
                               checkbox2.checked = true;
                           if (arry[i] == "文件记录")
                               checkbox3.checked = true;
                           if (arry[i] == "成品保护")
                               checkbox4.checked = true;
                           if (arry[i] == "其他")
                               checkbox5.checked = true;
                       }

                   }
</script>
    </body>

---------------------------------------

以上是我的代码..

你上面的代码中

getElementByID() 是错误的   getElementById() 注意大小写。

获取隐藏域的值那里也有问题

应该是 arry=hidden.value.split(",");

收获园豆:1
秋夜北 | 园豆:470 (菜鸟二级) | 2011-04-13 10:43
0

如果就是这些值的话,可以考虑

var str = hidden.value;

var strAry = {"技术方案执行","文明施工","文件记录","成品保护","其他"};

for(i=strAry.length;i>0;i--){

if(str.indexOf(strAry[i-1])>-1) document.getElementById("Checkbox" + i).checked=true;

}

没测有没有问题,中午休息时间太短了,该干活了。

收获园豆:15
ghoul84 | 园豆:240 (菜鸟二级) | 2011-04-13 13:31
0

for(i=1;i<=5;i++){
var el = document.getElementById("Checkbox"+i);
  if(el.value.indexOf("技术方案执行")!=-1 || el.value.indexOf("文明施工")!=-1 || el.value.indexOf("文件记录")!=-1
    || el.value.indexOf("成品保护")!=-1 || el.value.indexOf("其他")!=-1){
      el.checked= true;
  }
}

收获园豆:7
小-_-戴 | 园豆:9 (初学一级) | 2011-07-27 00:00
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册