• 【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>
  • 相关阅读:
    EMVTag系列15《选择应用响应数据》
    EMVTag系列14《支付环境响应数据》
    EMVTag系列13《脱机PIN》
    EMVTag系列9《卡片管理数据》
    EMVTag系列7《静态签名数据》
    EMVTag系列6《IAC 发卡行行为代码》
    EMVTag系列2《磁条等效数据》
    code1169 传纸条
    关于 变量越界
    code1039 数的划分
  • 原文地址:https://www.cnblogs.com/promise-x/p/7411351.html
Copyright © 2020-2023  润新知