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走断点是有值的

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

然后走完就报错空值

6个回答

MathRandom
MathRandom   2017.09.12 10:48

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

qq_36128558
qq_36128558 走js是有值的 图片没传上去 js就这一步报错别的都没事
10 个月之前 回复
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
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
前端JS/JQuery常用封装的方法介绍
1. 获取长度为len的随机字符串 function getRandomString(len) {     len = len || 32;     var $chars = 'ABCDEFGHJKMNPQRSTWXYZabcdefhijkmnprstwxyz2345678'; // 默认去掉了容易混淆的字符oOLl,9gq,Vv,Uu,I1     var maxPos = $chars
前端js、jquery、mvc、mvvm的知识
第一阶段 是JS原生通过浏览器解析机制,它的原理是使用浏览器提供的原生API 结合JS语法,可以直接操作DOM 第二阶段 由于原生API晦涩难懂,语法很长不好用,最重要的是要考虑各种浏览器兼容性,因为他们的解析标准都不一样,造成了,写一段效果代码要写很多的兼容语法,令人沮丧,所以jQuery的出现,迅速占领了世界。 第三阶段 mvc模式,需要服务器端配合,java
前端js问题
发信人: hopesfish (有理想的咸鱼), 信区: Java 标  题: Re: 技术选型问题: AngularJS vs. ExtJS 发信站: 水木社区 (Thu Sep 26 16:21:19 2013), 站内 作为一个靠JS混饭吃的,强烈建议你用SeaJS + AngluarJS + jQuery + Bootstrap + Bootstrap Theme的组合 S
jquery获取textarea内容为空的问题
使用 定义了一个textarea,在使用jquery的方法获取文本内容的时候总是为空。 var content = $(“#content”).val(); 后来测试发现,id不能命名成content,换成别的名字获取内容就正常了,猜测是个关键字。
jquery不能实时获取CKEDITOR值的问题
项目是基于angularJs和bootstrap的,项目中用到CKEDITOR插件,在提交表单的时候,不能实时的获取ckeditor的值,第一次为空,第二次获取的是第一次的值。解决办法如下: $("#控件id").val(CKEDITOR.instances.content.getData()); $("表单").serialize();
jQuery参数传递赋值的问题
$(function(){   $("p").click(function(){     $(this).hide();   });     var msg = "0";   $("#btn").click(function(){     msg = "1";     alert("step1: "+msg);     getdata(msg);     //msg = ge
jQuery的serialize方法无法获取form数据
长期以来,我一直以为form表单时符合数据的,table、tr、td是负责HTML页面显示布局的,他们之间不会互相影响。但是今天出现了这样的一个问题。同样的代码使用jQuery的serialize方法在IE8和IE9上执行是可以获取到form表单数据的,而在IE11上就不行。          经过多次试验、比较、测试发现是因为form标签和table交叉的原因。比如在以下的情况是执行失败的:
jQuery Mobile权威指南
移动开发前端js框架jQuery Mobile权威学习文档,3天精通jQuery Mobile。
java servlet 与前端json数据传输ajax、jquery
servlet: import java.io.IOException; import java.io.PrintWriter; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import javax.servlet.ServletExcep
前端js中的引号问题
formatter:function (value,row,index){ return "OpenFrame(\""+row.orderNo+"\")' target='_blank'>反查"; } 这段代码主要是记录下,js中引号的使用问题。 这里OpenFrame的参数是一个订单号,如果没有引号,则默认为是数值型,还会出现u