复选框控制下拉框是否禁用

最近在解决客户问题的时候,遇到这么一个需求:

通过复选框的勾选与不勾选,来控制后面的下拉框禁用与否。

效果如下图:

复选框勾选,则下拉框可用;复选框不勾选,则下拉框禁用。

方法如下:

1. 设计参数模版表:

A1,A2,A3都是复选框,开值是1,关值是0.这三个单元格必须都有三个变量名,此例中变量名分别为:test1,test2,test3

2. JSP中定义一个_cellValueChanged(cell)

function _cellValueChanged(cell)

{

var node = cell.id;//取到当前单元格的ID

//alert(node);

var c = node.replace(“A”,”B”);//因为下拉框是紧跟在复选框的后面,也就是说若复选框的单元格ID是:form1_A1,则下拉框的ID是:form1_B1,所以用replace替换一下

var s = document.getElementById(c).paramName;//取到单元格的变量名

//alert(“c=”+c);

var n = document.getElementById(node).childNodes[0].value;

//alert(“n=”+cell.childNodes[0].value)

if(n == 1)

{

document.getElementById(s).disabled = false;//通过select中的元素去控制控件是否禁用

}else

{

document.getElementById(s).disabled = true;//通过select中的元素去控制控件是否禁用

}

 

}

注意:上文中的红色部分很重要。因为大部分人会想到通过:document.getElementById(“form1_B1”).disabled = true;的方式去控制,其实这种方式是不对的,可能在某些浏览器下就达不到禁用的效果。(如IE6

所以需要通过对select中的一些元素来禁用,在报表中可以通过document.getElementById(“变量名”).disabled = true;来禁用。

热门文章