JS禁用页面上所有控件的实现方法(附demo源码下载)


Posted in Javascript onDecember 17, 2015

本文实例讲述了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程序设计有所帮助。

Javascript 相关文章推荐
javascript 检测浏览器类型和版本的代码
Sep 15 Javascript
基于jQuery的仿flash的广告轮播代码
Nov 04 Javascript
一个支付页面DEMO附截图
Jul 22 Javascript
jquery 插件实现瀑布流图片展示实例
Apr 03 Javascript
jQuery实现判断滚动条到底部
Jun 23 Javascript
javascript实现简单的进度条
Jul 02 Javascript
jQuery实现下拉加载功能实例代码
Apr 01 Javascript
js数组的五种迭代方法及两种归并方法(推荐)
Jun 14 Javascript
详解Angular中$cacheFactory缓存的使用
Aug 19 Javascript
在ABP框架中使用BootstrapTable组件的方法
Jul 31 Javascript
微信小程序自定义音乐进度条的实例代码
Aug 28 Javascript
React服务端渲染原理解析与实践
Mar 04 Javascript
jQuery选择器用法实例详解
Dec 17 #Javascript
深入分析jQuery的ready函数是如何工作的(工作原理)
Dec 17 #Javascript
js倒计时简单实现方法
Dec 17 #Javascript
高效的jquery数字滚动特效
Dec 17 #Javascript
JS函数的几种定义方式分析
Dec 17 #Javascript
js实现文字闪烁特效的方法
Dec 17 #Javascript
基于jquery实现省市联动特效
Dec 17 #Javascript
You might like
php不用内置函数对数组排序的两个算法代码
2010/02/08 PHP
php强制运行广告的方法
2014/12/01 PHP
PHP面向对象五大原则之里氏替换原则(LSP)详解
2018/04/08 PHP
PHP实现分布式memcache设置web集群session同步的方法
2018/04/10 PHP
php实例化一个类的具体方法
2019/09/19 PHP
Swoole扩展的6种模式深入详解
2021/03/04 PHP
Javascript 网页黑白效果实现代码(兼容IE/FF等)
2010/04/23 Javascript
JavaScript汉诺塔问题解决方法
2015/04/21 Javascript
JavaScript中getUTCMinutes()方法的使用详解
2015/06/10 Javascript
Web前端开发工具——bower依赖包管理工具
2016/03/29 Javascript
jQuery弹出下拉列表插件(实现kindeditor的@功能)
2016/08/16 Javascript
Vue数据驱动模拟实现1
2017/01/11 Javascript
详解Sea.js中Module.exports和exports的区别
2017/02/12 Javascript
vue+vuecli+webpack中使用mockjs模拟后端数据的示例
2017/10/24 Javascript
jQuery实现所有验证通过方可提交的表单验证
2017/11/21 jQuery
一文了解Vue中的nextTick
2019/05/06 Javascript
python sort、sorted高级排序技巧
2014/11/21 Python
使用C语言扩展Python程序的简单入门指引
2015/04/14 Python
在Python中操作字符串之replace()方法的使用
2015/05/19 Python
解决Python出现_warn_unsafe_extraction问题的方法
2016/03/24 Python
深入理解Python中变量赋值的问题
2017/01/12 Python
Python初学时购物车程序练习实例(推荐)
2017/08/08 Python
python OpenCV学习笔记直方图反向投影的实现
2018/02/07 Python
pytorch 在sequential中使用view来reshape的例子
2019/08/20 Python
Python SQLAlchemy入门教程(基本用法)
2019/11/11 Python
windows环境中利用celery实现简单任务队列过程解析
2019/11/29 Python
python 检查数据中是否有缺失值,删除缺失值的方式
2019/12/02 Python
Pycharm使用远程linux服务器conda/python环境在本地运行的方法(图解))
2019/12/09 Python
Python安装OpenCV的示例代码
2020/03/05 Python
APM Monaco中国官网:来自摩纳哥珠宝品牌
2017/12/27 全球购物
什么是SCM(软件配置管理)
2014/08/16 面试题
大学生水文观测实习自我鉴定
2013/09/29 职场文书
退伍老兵事迹材料
2014/01/31 职场文书
优秀护士演讲稿
2014/04/30 职场文书
小学生读书笔记
2015/07/01 职场文书
分析MySQL优化 index merge 后引起的死锁
2022/04/19 MySQL