最近工作中遇到要使页面中的一些模块整体禁用,有很多的方法,可用做一个DIV透明层来遮盖,但这样,还有些技术瓶颈,SELECT标签不能遮盖,
但用其他方法可用进行遮盖,但兼容性太差,后,还是使用基本方法,对每个标签进行禁用,但这样很是费时费力,效率不高,最后通过DIV划分模块,根据DIV来禁用,很是方便:
网上找到得相关代码:
<script>
function PanelEnable()
{
var obj = document.getElementById("divPanel");//得到DIV对象
var e = obj.getElementsByTagName("INPUT");//得到此DIV里的所有INPUT对象
for (var i=0; i<e.length; i++)
{
e[i].disabled = true;
}
}
PanelEnable();//禁用div下所有的INPUT,
</script>
根据工作的需要,进行了改进和扩展,代码如下:show_hidden_edit.js
//隐藏两项
function hiddenmodule(divid1,divid2)
{
for (i = 1; i < 3; i++) {
eval("divid"+i);
inputEnable(eval("divid"+i));//禁用div下所有的INPUT,
textareaEnable(eval("divid"+i));//禁用div下所有的textarea,
selectEnable(eval("divid"+i));//禁用div下所有的select,
imgEnable(eval("divid"+i));//隐藏div下所有的img
iframeEnable(eval("divid"+i));//div下所有的iframe切换到查看方式
}
}
//隐藏三项
function hiddenmodule(divid1,divid2,divid3)
{
for (i = 1; i <4; i++) {
eval("divid"+i);
inputEnable(eval("divid"+i));//禁用div下所有的INPUT,
textareaEnable(eval("divid"+i));//禁用div下所有的textarea,
selectEnable(eval("divid"+i));//禁用div下所有的select,
imgEnable(eval("divid"+i));//隐藏div下所有的img
iframeEnable(eval("divid"+i));//div下所有的iframe切换到查看方式
}
}
//禁用div下所有的INPUT
function inputEnable(inputid)
{
var obj = document.getElementById(inputid);//得到DIV对象
var e = obj.getElementsByTagName("INPUT");//得到此DIV里的所有INPUT对象
for (var i=0; i<e.length; i++)
{
e[i].disabled = true;
}
}
//禁用div下所有的textarea
function textareaEnable(textareaid)
{
var obj = document.getElementById(textareaid);//得到DIV对象
var e = obj.getElementsByTagName("textarea");//得到此DIV里的所有textarea对象
for (var i=0; i<e.length; i++)
{
e[i].disabled = true;
}
}
//禁用div下所有的select
function selectEnable(selectid)
{
var obj = document.getElementById(selectid);//得到DIV对象
var e = obj.getElementsByTagName("select");//得到此DIV里的所有select对象
for (var i=0; i<e.length; i++)
{
e[i].disabled = true;
}
}
//隐藏div下所有的img
function imgEnable(imgid)
{
var obj = document.getElementById(imgid);//得到DIV对象
var e = obj.getElementsByTagName("IMG");//得到此DIV里的所有IMG对象
for (var i=0; i<e.length; i++)
{
e[i].style.display="none" ;
}
}
function iframeEnable(iframeid)
{
var obj = document.getElementById(iframeid);//得到DIV对象
var e = obj.getElementsByTagName("iframe");//得到此DIV里的所有iframeid对象
if(e.length>=1)
{
IframeOrHtml("1");
}
}
//内容1查看状态与2编辑状态切换
function IframeOrHtml(or)
{
var a=document.getElementById("showiframe");
var b=document.getElementById("showhtml");
if(or=="1")
{
a.style.display="none";
b.style.display="";
}else if(or=="2")
{
a.style.display="";
b.style.display="none"
;
}else{alert("IframeOrHtml调用参数错误!");}
}
页面调用:
<script type="text/javascript" src="xxx/js/show_hidden_edit.js"></script>
<script type="text/javascript" >
//根据节点ID隐藏模块
function selectjdid()
{
if(<%=jdid%>==0)
{
hiddenmodule("backinfo","passinfo");//隐藏模块DIV的ID
}else if(<%=jdid%>==1){
hiddenmodule("edit","passinfo");
}else if(<%=jdid%>==2){
hiddenmodule("edit","backinfo");
}else if(<%=jdid%>==3){
hiddenmodule("edit","backinfo","passinfo");
}
}
</script>