qq_40413584 2018-12-20 17:04 采纳率: 88.9%
浏览 435
已采纳

Js严格模式下,下面的代码怎么改才正确啊

with在严格模式下不能使用,怎么修改才能不报错啊

        for(var i=0;i<count;i++){
            with(obj.elements[i]){
                var _dataType = getAttribute("dataType");
                if(typeof(_dataType) == "object" || typeof(this[_dataType]) == "undefined")  continue;
                this.ClearState(obj.elements[i]);
                if(getAttribute("require") == "false" && value == "") continue;
                switch(_dataType){
                    case "Date" :
                    case "Repeat" :
                    case "Range" :
                    case "Compare" :
                    case "Custom" :
                    case "Group" : 
                    case "Limit" :
                    case "LimitB" :
                    case "SafeString" :
                        if(!eval(this[_dataType]))  {
                            this.AddError(i, getAttribute("msg"));
                        }
                        break;
                    default :
                        if(!this[_dataType].test(value)){
                            this.AddError(i, getAttribute("msg"));
                        }
                        break;
                }
            }

==========================分界线========================
这段怎么改啊

    ClearState : function(elem){
        with(elem){
            if(style.color == "red")
                style.color = "";
            var lastNode = parentNode.childNodes[parentNode.childNodes.length-1];
            if(lastNode.id == "__ErrorMessagePanel")
                parentNode.removeChild(lastNode);
        }
    },
  • 写回答

1条回答 默认 最新

  • 天际的海浪 2018-12-20 09:24
    关注
            for(var i=0;i<count;i++){
                var q = obj.elements[i];
                var _dataType = q.getAttribute("dataType");
                if(typeof(_dataType) == "object" || typeof(this[_dataType]) == "undefined")  continue;
                this.ClearState(obj.elements[i]);
                if(q.getAttribute("require") == "false" && q.value == "") continue;
                switch(_dataType){
                    case "Date" :
                    case "Repeat" :
                    case "Range" :
                    case "Compare" :
                    case "Custom" :
                    case "Group" : 
                    case "Limit" :
                    case "LimitB" :
                    case "SafeString" :
                        if(!eval(this[_dataType]))  {
                            this.AddError(i, q.getAttribute("msg"));
                        }
                        break;
                    default :
                        if(!this[_dataType].test(q.value)){
                            this.AddError(i, q.getAttribute("msg"));
                        }
                        break;
                }
    </script>
    
    

        ClearState : function(elem){
                if(elem.style.color == "red")
                    elem.style.color = "";
                var lastNode = elem.parentNode.childNodes[elem.parentNode.childNodes.length-1];
                if(lastNode.id == "__ErrorMessagePanel")
                    elem.parentNode.removeChild(lastNode);
        },
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 使用C#,asp.net读取Excel文件并保存到Oracle数据库
  • ¥15 C# datagridview 单元格显示进度及值
  • ¥15 thinkphp6配合social login单点登录问题
  • ¥15 HFSS 中的 H 场图与 MATLAB 中绘制的 B1 场 部分对应不上
  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配