CheckBoxList 和 DropDownList 的二级联动

< scriptlanguage = " javascript " type = " text/javascript " >
<!--
// 添加CheckBoxList事件
function addAffair()
... {
varcheckList=document.getElementById("cblTeamPerson");
varchildrens=checkList.getElementsByTagName("input");
varcount=childrens.length;
if(count==0)
return;

varcheckBox;
varcheckBoxid;
for(vari=0;i<count;i++)
...{
checkBoxid
="cblTeamPerson_"+i;
checkBox
=document.getElementById(checkBoxid);
checkBox.onclick
=function(ev)
...{
checkedAffair((ev
||window.event).srcElement||ev.currentTarget);
}

}

}


// 添加CheckBox的onclick事件
function checkedAffair(checkBoxID)
... {
varcheckBox=document.getElementById(checkBoxID.id);
vardropDownList=document.getElementById("ddlTeamLeader");
if(checkBox.checked==true)
...{
varnewOption=document.createElement("OPTION");
newOption.text
=getText(checkBox.id);
newOption.value
=getValue(checkBox.id);
dropDownList.options.add(newOption);
}

elseif(checkBox.checked==false)
...{
varstrValue=getValue(checkBox.id);
varcount=dropDownList.options.length;
varchildren;

for(vari=0;i<count;i++)
...{
children
=dropDownList.options[i].value;
if(children==strValue)
...{
dropDownList.options.remove(i);
}

}

}

}


// Gettheevent.onclickText
function getText(checkBoxID)
... {
varcheckBoxList=document.getElementById("cblTeamPerson");
varcheckbox=checkBoxList.getElementsByTagName("input");
varindex=getValue(checkBoxID);
varintIndex=parseInt(index);

alert(checkbox[index].nextSibling.innerHTML);

varvalue=checkbox[index].nextSibling.innerHTML;
returnvalue;
}


// Gettheevent.onclickValue
function getValue(checkBoxID)
... {
varcheckBox=document.getElementById(checkBoxID);
varfactLength=checkBox.id.length;
if(factLength==15)
...{
returncheckBox.id.substring(14,15);
}

else
...{
returncheckBox.id.substring(14,16);
}

}

// -->
</ script >

遇到的2个比较严重的问题

1、在addAffair()时,页面生成后给客户端生成的单一的checkbox挂onclick事件,如果直接写成

checkBox.onclick = checkedAffair();是不响应的,这是在调用函数,应该

checkBox.onclick = function(ev) { 函数 }

2、getText(),取不到checkbox的Text,Value貌似确实取不到,改用获取checkbox的ClientID的尾数来记录value的办法,但是getElementById,取到的只是“on”,后来又想根据getElementsByTagName("input")得到checked的index,但是返回的值是undefind,后来又想通过CheckBoxList生成的<table>,用DOM模型来取,依然找不到

解决办法 var value = checkbox[index].nextSibling.innerHTML;


你可能感兴趣的:(JavaScript)