zoukankan      html  css  js  c++  java
  • 【JavaScript】Js控制页面所有元素只读

    在页面初始化加载以下readOnlyPage()方法,可实现所有元素只读,方便实用。

    <script language="javascript">
    function readOnlyPage(){
            elements = document.all;
            for ( var i = 0; i < elements.length; i++) {
                setReadonlyOfElement(elements[i]);
            }
    }
    
    function setReadonlyOfElement(iElement){
          var elementType = iElement.type;
          if ((elementType == "hidden") || (elementType == "password") ||
            (elementType == "text") || (elementType == "textarea")){
            if(iElement.setReadonlyFlag==true){
              return;
            }else{
              iElement.setReadonlyFlag = true;
            }
            if(iElement.onblur!=null){
                iElement.oldOnblur = iElement.onblur;
                iElement.onblur = functionDoNothing;
            }
            if(iElement.ondblclick!=null){
                iElement.oldOndblclick = iElement.ondblclick;
                iElement.ondblclick = functionDoNothing;
            }
            if(iElement.onfocus!=null){
                iElement.oldOnfocus = iElement.onfocus;
                iElement.onfocus = functionDoNothing;
            }
    
            if(iElement.className!=null){
                iElement.oldClassName = iElement.className;
            }
            iElement.className="readonly";
            iElement.readOnly = true;
          }
          // 不要把按钮设只读
          //else if(elementType=="button"){
          //  if(iElement.setReadonlyFlag==true){
          //    return;
          //  }else{
          //    iElement.setReadonlyFlag = true;
          //  }
          //}
          else if(elementType == "checkbox"){
            setCheckBoxReadonly(iElement,true);
          }
          else if(elementType == "radio"){
            setRadioReadonly(iElement,true)
          }else if(elementType == "select-one"){
              if(iElement.setReadonlyFlag==true){
                  return;
              }else{
                  iElement.setReadonlyFlag = true;
              }
              var optionTags = new Array();
              var index = 0;
              var optionObj;
              var elementValue = iElement.value;
              var tag;
              var options = iElement.options;
              if(options.length>1){
                  for(var j = options.length-1; j >= 0; j--){
                      tag = new Array();
                      optionObj=options[j];
                      tag["value"] = optionObj.value;
                      tag["text"]  = optionObj.text;
                      optionTags[index++] = tag;
                      if(tag["value"] != elementValue){
                          iElement.remove(j);
                      }
                  }
              }
              iElement.optionTags = optionTags;
              //iElement.className="readonly";
          }         
        }
        
        function setCheckBoxReadonly(field,flag)
        {
          if(flag==true)
          {
            if(field.setCheckBoxReadonlyFlag!=true)
            {
              field.setCheckBoxReadonlyFlag=true;
              field.oldClassName = field.className;
              field.oldOnclick   = field.onclick;
              field.className = "readonlycheckbox";
              field.onclick = functionReturnFalse;
            }
          }
          else
          {
            if(field.setCheckBoxReadonlyFlag==true)
            {
              field.className = field.oldClassName;
              field.onclick = field.oldOnclick;
              field.setCheckBoxReadonlyFlag = false;
            }
          }
        }
        
        function setRadioReadonly(field,flag)
        {
          if(flag==true)
          {
            if(field.setRadioReadonlyFlag!=true)
            {
              field.oldClassName = field.className;
              field.oldOnfocus   = field.onfocus;
              field.className = "readonlyradio";
              field.onfocus = functionCancelFocus;
              field.disabled = true;
            }
          }
          else
          {
            if(field.setRadioReadonlyFlag==true)
            {
              field.className = field.oldClassName;
              field.onfocus = field.oldOnfocus;
              field.setRadioReadonlyFlag = false;
              field.disabled = false;
            }
          }
        }
        </script>
  • 相关阅读:
    四种会话跟踪技术的对比
    【转载】.NET中使用Redis
    【转载】Windows平台下利用APM来做负载均衡方案
    【转载】Windows平台分布式架构实践
    MVC插件式开发平台
    如何用JS和HTML 做一个桌面炒股小插件【原创】
    如果用HTML5做一个在线视频聊天【原创】
    BraveOS正式版发布,希望大家下载使用
    短期将不再更新更多内容,见谅!
    打造自己的移动绿色版 Python 环境
  • 原文地址:https://www.cnblogs.com/promise-x/p/7411351.html
Copyright © 2011-2022 走看看