我的输入复选框有一个循环(见下文)。
<cfloop query="qGetCBList">
<input name="#qGetCBList.CheckBox#" type="checkbox" id="#qGetCBList.CheckBox#"onclick="CheckBoxSelect('#qGetCBList.CBNum#','#qGetCBList.CheckBox#','#qGetCBList.RecordCount#');"> #qGetCBList.CBDesc#
<br /><br />
</cfloop>
我的javascript函数是,
<script language="JavaScript">
CheckBoxSelect = function(CB,cbID,rCnt){
var myVar_CB=CB;
var myVar_CB_ID=cbID;
var myVar_RCNT=rCnt;
if(myVar_CB == 2) //"Chemical(s)........."
{
for(i=1;i<=myVar_RCNT;i++){
var myVar_CB_ID_FMT="cb"+i; //check box ID format
if(i!=2){
//alert(myVar_CB_ID_FMT);
document.getElementById("myVar_CB_ID_FMT").disabled=true;
}
}
}
else{
alert('good to go');
}
}
</script>
这里发生的是,如果选中的复选框是2(即CBNum),那么我希望禁用所有其他复选框。
P.S。这是主页的绑定页面。当我取消评论我的警报标签时,它会给我正确的CBNums,但是禁用不起作用。如果它有用,我正在使用CF8。
赞赏反馈和/或替代方法。谢谢。
答案 0 :(得分:3)
我对ColdFusion一无所知,但您可以使用的基本JavaScript提示是:
检查document.getElementById()
的返回值;不要以为它总会返回一个你可以禁用的节点。
大多数浏览器都有built-in或downloadable调试器,可以让您检查变量。使用它而不是普通警报。 E.g:
console.log(myVar_CB_ID_FMTT, document.getElementById(myVar_CB_ID_FMT));
答案 1 :(得分:1)
getElementById("myVar_CB_ID_FMT")
正在寻找名为myVar_CB_ID_FMT
的元素。这个元素存在吗?不会。您的变量myVar_CB_ID_FMT将不会被评估为getElementById,只是将其视为字符串“myVar_CB_ID_FMT”。
尝试document.getElementById("cb"+i)
getElementById(id)
中的ID区分大小写,因此请确保“cb”+ i存在。
答案 2 :(得分:0)
在我的循环中,当我修剪我的id值...id="#trim(qGetCBList.CheckBox)#"...
时,它有效。
当然,这是一个简单的愚蠢和我的错。
谢谢大家的支持,你们都摇滚。