2 qq 36128558 qq_36128558 于 2017.09.12 10:40 提问

前端js jquery值是空的问题

这是前端控制台报错。

 forwardNode.do?nodeName=carAdd:2979 Uncaught TypeError: Cannot set property 'value' of null
    at saveNewPolicyTask (forwardNode.do?nodeName=carAdd:2979)
    at HTMLInputElement.onclick (forwardNode.do?nodeName=carAdd:2741)

这是js走断点是有值的

 ![图片说明](http://img.ask.csdn.net/upload/201709/12/1505184019_932139.png)

然后走完就报错空值

6个回答

MathRandom
MathRandom   2017.09.12 10:48

你代码都没有 怎么知道你到底哪里的问题

qq_36128558
qq_36128558 走js是有值的 图片没传上去 js就这一步报错别的都没事
2 个月之前 回复
qq_36128558
qq_36128558   2017.09.12 10:53

图片说明

qq_36128558
qq_36128558   2017.09.12 10:54

完整的JS

 function saveNewPolicyTask(){
    var companyCode = document.getElementById("companyCode");//保险公司代码
    var relationPolicyNo = document.getElementById("relationPolicyNo");//关联保单号
    if(document.getElementById("relationNoId").style.display!='none'){//如果关联保单号显示
        if(companyCode.value == '4000006' && relationPolicyNo.value != "" && null != relationPolicyNo.value){//到时候要改成4000006
            //给4000006的关联保单号加上【.】是因为大地保险公司同时出单,商业险和交强险保单号一致
            /* if(relationPolicyNo.value.substring(0,2)!='JQ'){
                document.getElementById("relationPolicyNo").value="JQ".concat(trim(relationPolicyNo.value));
            } */
            var length = relationPolicyNo.value.length;
            if(relationPolicyNo.value.substring(length-1,length)!='.'){
                document.getElementById("relationPolicyNo").value=trim(relationPolicyNo.value).concat(".");
            } 
        }
    }
//将业务渠道放开,由用户决定输不输入代理人信息
    //var businessNature = document.getElementById("businessNature");
    //var handlerCode = document.getElementById("handlerCode");
    //var channelAgentCode = document.getElementById("channelAgentCode");
    var checkFlag = document.getElementById("checkFlag");
    //var commissionRate = document.getElementById("commissionRate");
    /*if(businessNature.value==1){
        if(handlerCode.value==""){
            alert("直属业务,业务员信息不能为空!");
            return false;
        }
    } else {
        if(channelAgentCode.value==""){
            alert("代理业务,渠道代理人信息不能为空!");
            return false;
        }
        if(commissionRate.value==""){
            alert("代理业务,手续费支付比例不能为空!");
            return false;
        }
    }*/
    //流水号不校验  add by chenling 20140307
//  if(checkFlag.value=="F" || checkFlag.value=="S"){
//        var visaOrderNo = document.getElementById("visaOrderNo");
//        var orderNo = $("#payRecDiv INPUT.orderNo").get(0);
//        if(visaOrderNo.value || (orderNo && $.trim(orderNo.value) )){
//          alert("请点击校验流水号按钮!!!");
//          return false;
//        }
//  }
    //add by zhangjinguo 20140418 begin 保存保单信息时添加缴费期数的校验
    var indexElements = document.getElementsByName('prpJpayRecserialNo');
    var indexLen = indexElements.length;
    var planFeeTimes = parseInt(document.getElementById("planFeeTimes").value);
    if(isNaN(planFeeTimes)) planFeeTimes = 0;
    if(indexLen-1 > planFeeTimes){
        alert("收付信息的记录数不能大于缴费期数!");
        return false;
    }
    //add by zhangjinguo 20140418 end 

   // if($("input[name='prpSitemCar.frameNo']").val().length != 17){
   //   alert("请注意车架号长度");
   //   return false;
  //  }
    if($("#itemKindDiv INPUT.serialNo").size() == 0){
        alert("险别信息不能为空!");
        return false;
    }
    var isChecks = document.getElementsByName("isCheckItems");
    var jsonObj = [];
    var jsonObjStr = "";
    var baoeSum = 0.0;
    //var jsonStr = "";
     for(var i = 0 ; i < isChecks.length ; i++){
            if(isChecks[i].checked){
                var nar = document.getElementById(isChecks[i].id); //根据id得到当前节点  保费
                var next = nar.parentNode;//获得checkBox的父节点
                var baofeiya = getNextSibling(next,5);// 保费
                var baoebaofeie = getNextSibling(next,4);

                var transcode = getNextSibling(next,0);
                var transcodeId = transcode.childNodes[0].id;//transCode
                var transc = document.getElementById(transcodeId).value;//transCode


                if('030123' == transc) // 交强险的时候
                {
                    baofeiya = getNextSibling(next,5);// 保费
                    baoebaofeie = getNextSibling(next,4);
                }

                var xianbiemingcheng =  getNextSibling(next,3);
                var xianbiedaima = getNextSibling(next,2);

                var sumId = baofeiya.childNodes[0].id;//得到td的前一个节点
                var sumpremiumValue = document.getElementById(sumId).value;//得到勾选值对应的保费

                var amountId = baoebaofeie.childNodes[0].id;//得到td的前一个的前一个节点 保额
                var amountValue = document.getElementById(amountId).value;//得到勾选值对应的保费

                var kindNameId = xianbiemingcheng.childNodes[1].id;//险别名称ID
                var kindName = document.getElementById(kindNameId).value;//险别名称
                var kindCodeId = xianbiedaima.childNodes[0].id;//险别代码ID
                var kindCode = document.getElementById(kindCodeId).value;//险别名称
                /*var sumId = next.previousSibling.childNodes[0].id;//得到td的前一个节点
                var sumpremiumValue = document.getElementById(sumId).value;//得到勾选值对应的保费

                var amountId = next.previousSibling.previousSibling.childNodes[0].id;//得到td的前一个的前一个节点 保额
                var amountValue = document.getElementById(amountId).value;//得到勾选值对应的保费

                var kindNameId = next.previousSibling.previousSibling.previousSibling.childNodes[1].id;//险别名称ID
                var kindName = document.getElementById(kindNameId).value;//险别名称
                var kindCodeId = next.previousSibling.previousSibling.previousSibling.previousSibling.childNodes[0].id;//险别代码ID
                var kindCode = document.getElementById(kindCodeId).value;//险别名称*/
                var relationFlag = getNextSibling(next,6);//1主险 2附加险
                var relationFlagId = relationFlag.childNodes[0].id;
                var isMain = document.getElementById(relationFlagId).value;


                if(isMain=='2'){
                    if((transc == "030108" || transc== "030111") && trim(amountValue)==""){//附加险中 划痕 新增设备的附加险都需要录入保额,其他附加险不用
                        alert("请填入勾选险别的保额");
                        return false;
                    }
                    if(trim(amountValue)==""){
                            //document.getElementById(amountId).value=0;
                            amountValue=0.00;
                        };
                }else{
                    if(trim(sumpremiumValue)==""){
                    alert("请填入勾选险别的保费");
                    return false;
                    }
                    if(trim(amountValue)==""){
                        alert("请填入勾选险别的保额");
                        return false;
                    }
                }

                baoeSum = baoeSum.add(parseFloat(amountValue));
                $("#sumAmount").val(baoeSum);
                //做成json数据
                var PrpSitemKind = new Object();
                PrpSitemKind.kindCode=kindCode;
                PrpSitemKind.kindName=kindName;
                PrpSitemKind.amount=amountValue;
                PrpSitemKind.premium=sumpremiumValue;
                //var prpSitemKinds = JSON.stringify(PrpSitemKind);
                //jsonStr += JSON.stringify(PrpSitemKind)+"";
                jsonObj.push(JSON.stringify(PrpSitemKind));

            }
        }
        if(jsonObj==""){
            alert("险别信息不能为空!");
            return false;
        };
        jsonObjStr = "[".concat(jsonObj).concat("]");
        document.getElementById("jsonObjStr").value=jsonObjStr;
        //alert(jsonStr);
    if(YAHOO.quote.data.datacheck('wrapper') ){
        var startDate = $("#startDate1").val();
        var endDate = $("#endDate1").val();
        var makeDate = $("#makeDate").val();
        var startDateArr=startDate.split("-");    
        var startDateTime=new Date(startDateArr[0],startDateArr[1],startDateArr[2]); 
        var endDateArr=endDate.split("-");    
        var endDateTime=new Date(endDateArr[0],endDateArr[1],endDateArr[2]);
        var makeDateArr=makeDate.split("-");
        var makeDateTime=new Date(makeDateArr[0],makeDateArr[1],makeDateArr[2]);
        if(startDateTime>=endDateTime){
            alert("保险起期不能晚于保险止期");
            return false;
        }

        //subin 20141228
        var appliCustomerResource=$("#appliCustomerResource");
        var insuredCustomerResource=$("#insuredCustomerResource");
        var resourceCustId=$("#resourceCustId");
        if(resourceCustId.val()!=""&&$("#insOrderNo").val()==""){
            if(insuredCustomerResource.val()=="ERP"){
                alert("被保险人为ERP客户,请选择ERP保险销售单号");
                return false;
            }
            if(appliCustomerResource.val()=="ERP"){
                alert("投保人为ERP客户,请选择ERP保险销售单号");
                return false;
            }
        }

        //if(makeDateTime<startDateTime){
        //  alert("出单日期不能晚于保险起期");
        //  return false;
        //}
        if(checkRiskConfict()){
            return false;//检验险别是否冲突
        }
        fm.submitButton.disabled = true;
        submitDlg = new YAHOO.widget.Panel("submitDlg",{iframe:true, visible:true, width:600, height:450, underlay:"shadow", constraintoviewport:true, fixedcenter:true, modal:true, zIndex:320});
        submitDlg.setHeader("新增保单");
        submitDlg.setBody("<iframe name='submitFrame' src='javascript:false;'  frameborder='0' style='margin:0; padding:0; width:100%; height: 100%'></iframe>");
        submitDlg.render(document.body);
        submitDlg.show();
        YAHOO.util.Event.addListener(submitDlg.close, "click", refreshPage, this);
        fm.action=contextRootPath+"/insureListManage/saveNewCar.do";
        fm.target="submitFrame";
        fm.submit();
    }else{
        alert("界面输入有误,请核实!");
        return false;
    }
}
zhihang19941024
zhihang19941024   2017.09.12 11:22

Cannot set property 'value' of null 
应该是getElementById没找到元素

usecf
usecf   2017.09.12 12:54

Cannot set property 'value' of null 
应该是getElementById没找到元素

看看你自己定义的id是不是 jsonObjStr document.getElementById("jsonObjStr").value

kaixiawei
kaixiawei   2017.09.12 14:25

控件id写错了。看看有没有id是jsonObjStr的这个控件。
-->document.getElementById("jsonObjStr").value

Csdn user default icon
上传中...
上传图片
插入图片