赵今麦's boyfriend 2022-05-16 17:44 采纳率: 100%
浏览 2301
已结题

求解决Uncaught TypeError: Cannot read properties of null (reading '0')

问题遇到的现象和发生背景

这个页面是 两个按钮公用一个
前面的提交按钮 opinion为空 可以正常 补上“审核通过”
结束流程按钮 就不行了

问题相关代码,请勿粘贴截图
function dosubmit(){
            //采用ajax来保存数据到后台,成功后刷新上一个页面的数据
            //parent.refreshPagedata();
            //closeIframe();
            var index = layer.load(1, {
                shade: [0.1,'#fff'] //0.1透明度的白色背景
            });
            let result = $('#sqcgxx1').serialize()
            const status = result.match(/(?<=status=).*?(?=&)/)
            const opinion = result.match(/(?<=opinion=).*?(?=&)/)
            console.log(opinion+"OOOOO")
            if(status[0] === '1' && !opinion[0]?.length){
                result = result.substring(0, opinion.index) + "审核通过" + result.substring(opinion.index)
            }
            $.post("/cis/assetsapprovalController/update", result,
                function(data){
                    var abid = "[[${af.id}]]";
                    var jtzycyarr = [];
                    var nums = $("#nums").val();
                    var m = nums.split(",");
                    for(var s=0;s<m.length;s++){
                        var id = m[s];
                        var a = jtzycyget(abid, id);
                        if(a != ""){
                            jtzycyarr.push(a);
                        }
                    }
                    var result = {
                        "jtzycyarr":jtzycyarr,
                    };

                    $.ajax({
                        url:'/cis/assetsController/addsubtable?abid='+abid,
                        type:"post",
                        data:JSON.stringify(result),
                        contentType:"application/json",
                        dataType:"json",
                        success:function (msg) {
                            if(msg.code == 1){
                                var str = '';
                                var ele = $('#jslc').css('display');
                                console.log(ele);
                                if(ele == 'none'){
                                    str = '提交给下一节点办理人!';
                                }else{
                                    str = '提交成功!'
                                }
                                layer.alert(str, { icon: 1, closeBtn: 0 }, function (index) {
                                    layer.close(index);
                                    closeIframe();
                                    // var jjb = $('#queding').css('display');
                                    // if (jjb == 'none'){
                                    //     layer.open({
                                    //         type:2,
                                    //         context:'web/assets/manage/shenhe.html',
                                    //         title:'另一个页面',
                                    //         area:['50%','50%'],
                                    //         skin:'layui-layer-rim',
                                    //         btn:['确定','关闭']
                                    //     })
                                    // }
                                });
                            }else{
                                layer.msg('提交失败!');
                            }
                        }
                    });
                });
        }
<div class="office_topr">
        <ul class="ccb_ul">
            <li><a href="javascript:void(0);"  onClick="tijiao()" id="queding">提交</a>
                <a href="javascript:void(0);"  onClick="tijiao()" id="jslc">结束流程</a></li>
            <li><a href="javascript:void(0);"  onClick="closeIframe()">关闭</a></li>
        </ul>
    </div>
运行结果及报错内容

img

img

我的解答思路和尝试过的方法

我把opinion后面的0去掉 报错提示 变成Uncaught TypeError: Cannot read properties of null (reading 'index')

我想要达到的结果

就是在点击提交按钮时他的不管按钮是【提交】还是【结束流程】都能成功 并且可以在opinion为空时,填上内容为“审核通过”

  • 写回答

1条回答 默认 最新

  • 搬砖的小编 2022-05-16 18:07
    关注

    既然知道是null直接 做空判断处理

    if(status[0] === '1' && !opinion ||(opinion&&!opinion.length) )
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 5月25日
  • 已采纳回答 5月17日
  • 创建了问题 5月16日

悬赏问题

  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效
  • ¥15 悬赏!微信开发者工具报错,求帮改
  • ¥20 wireshark抓不到vlan
  • ¥20 关于#stm32#的问题:需要指导自动酸碱滴定仪的原理图程序代码及仿真
  • ¥20 设计一款异域新娘的视频相亲软件需要哪些技术支持
  • ¥15 stata安慰剂检验作图但是真实值不出现在图上
  • ¥15 c程序不知道为什么得不到结果
  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法