JS禁用页面上所有控件的实现方法(附demo源码下载)
更新时间:2015年12月17日 11:24:00 作者:wandejun1012
这篇文章主要介绍了JS禁用页面上所有控件的方法,涉及JavaScript捕捉页面元素的相关技巧,并附带demo源码供读者下载参考,需要的朋友可以参考下
本文实例讲述了JS禁用页面上所有控件的实现方法。分享给大家供大家参考,具体如下:
利用页面元素的特征,可以捕捉到所有元素。
function DisableElements(container,blnHidenButton)
{
if (!container)
return;
var aEle;
if (navigator.appName =="Microsoft Internet Explorer") //IE
{
for (var i=0;i<container.all.length;i++)
{
aEle = container.all[i];
tagName = aEle.tagName.toUpperCase();
if ((tagName=="SELECT"))
{
aEle.disabled = true;
if(tagName=="BUTTON" && blnHidenButton)
{
//aEle.style.display = "none";//对button不做处理
}
}
else if (tagName=="INPUT")
{
if (aEle.type.toUpperCase()!="HIDDEN")
{
if (aEle.type.toUpperCase()=="TEXT")
{
ReadonlyText(aEle);
}
else if (aEle.type.toUpperCase()=="BUTTON")
{
//do nothing;
}
else
{
aEle.disabled = true;
}
}
if((aEle.type.toUpperCase()=="BUTTON"||aEle.type.toUpperCase()=="SUBMIT") && blnHidenButton)
{
//aEle.style.display = "none";//对button不处理
}
}
else if (tagName=="TEXTAREA")
{
ReadonlyText(aEle);
}
}
}
else//非IE浏览器
{
var aEle = container.getElementsByTagName("select");
for (var i=0;i< aEle.length;i++)
{
aEle[i].disabled = true;
}
aEle = container.getElementsByTagName("button");
for (var i=0;i< aEle.length;i++)
{
aEle[i].disabled = true;
}
aEle = container.getElementsByTagName("textarea");
for (var i=0;i< aEle.length;i++)
{
ReadonlyText(aEle[i]);
}
aEle = container.getElementsByTagName("input");
for (var i=0;i< aEle.length;i++)
{
if (aEle[i].type.toUpperCase()!="HIDDEN")
{
if (aEle[i].type.toUpperCase()=="TEXT")
{
ReadonlyText(aEle[i]);
}
else
{
aEle[i].disabled = true;
}
}
if((aEle[i].type.toUpperCase()=="BUTTON"||aEle[i].type.toUpperCase()=="SUBMIT")&&blnHidenButton)
{
aEle[i].style.display = "none";
}
}
}
}
function ReadonlyText(objText)
{
if (objText){
//objText.style.backgroundColor = "menu";
objText.style.background = "#E6E6E6";
//objText.style.color = "black";
objText.readOnly=true;
}
}
效果非常好,我这里将button全部保留了,如果想将button也禁用掉,可以将注释去掉。
调用代码:
假设有个name为formeditor的form,调用方法如下:
var myForm=document.forms["formEditor"]; DisableElements(myForm,'true');
完整实例代码点击此处本站下载。
希望本文所述对大家JavaScript程序设计有所帮助。
相关文章
解决layui的使用以及针对select、radio等表单组件不显示的问题
今天小编就为大家分享一篇解决layui的使用以及针对select、radio等表单组件不显示的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧2019-09-09
JS使用window.requestAnimationFrame()实现逐帧动画
这篇文章介绍了JS使用window.requestAnimationFrame()实现逐帧动画的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2022-06-06


最新评论