Click here to Skip to main content
15,902,938 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
I've got this code:

JavaScript
if (returneddata.daterangeparams.TimeUnitsFrom != null) {


...which throws this error (as seen in the Chrome Dev Tools console) when the value is, indeed, null:

Index:1031 Uncaught TypeError: Cannot read property 'TimeUnitsFrom' of null

So how can I check for null in a way that I can avoid the error?

Based on a suggestion here http://stackoverflow.com/questions/12271750/how-to-check-if-a-variable-is-both-null-and-or-undefined-in-javascript, I even tried this:

JavaScript
if (returneddata.daterangeparams.TimeUnitsFrom != null && variable !== undefined) {


...but I still get the same whinging from the guts of the browser.

Code in greater context:

JavaScript
function populatedaterangeprams(rptval, returneddata) {
                    var fromval = '';
                    var toval = '';
                    if (returneddata.daterangeparams.TimeUnitsFrom != null && 

returneddata.daterangeparams.TimeUnitsFrom !== undefined) {
                        fromval = returneddata.daterangeparams.TimeUnitsFrom;
                    }
                    if (returneddata.daterangeparams.TimeUnitsTo != null && 

returneddata.daterangeparams.TimeUnitsTo !== undefined) {
                        toval = returneddata.daterangeparams.TimeUnitsTo;
                    }

                    if (rptval === 1) {
                        // Produce Usage
                        $("#produsagefrom").val(fromval);
                        $("#produsageto").val(toval);
                    } else if (rptval === 2) {
			. . .


So how can I safely check for null?

What I have tried:

Based on a suggestion here http://stackoverflow.com/questions/12271750/how-to-check-if-a-variable-is-both-null-and-or-undefined-in-javascript, I even tried this:

JavaScript
if (returneddata.daterangeparams.TimeUnitsFrom != null && variable !== undefined) {


...but I still get the same whinging from the guts of the browser.
Posted
Updated 29-Apr-16 17:23pm
Comments
[no name] 29-Apr-16 11:54am    

"variable" object, they have used in the example in stackoverflow[^] site, you should not use it unless you have defined it with the same name,

Edit your code as

JavaScript
function populatedaterangeprams(rptval, returneddata) {
            var fromval = '';
            var toval = '';

            if (returneddata != null && returneddata.daterangeparams != null ) {


                if (returneddata.daterangeparams.TimeUnitsFrom != null  ) {
                    fromval = returneddata.daterangeparams.TimeUnitsFrom;
                }
                if (returneddata.daterangeparams.TimeUnitsTo != null  ) {
                    toval = returneddata.daterangeparams.TimeUnitsTo;
                }

                if (rptval === 1) {
                    // Produce Usage
                    $("#produsagefrom").val(fromval);
                    $("#produsageto").val(toval);
                } else if (rptval === 2) { }
            }
        }
 
Share this answer
 
You need to check each step to see if it's null:
JavaScript
if (returneddata != null && returneddata.daterangeparams != null && returneddata.daterangeparams.TimeUnitsFrom != null) {
 
Share this answer
 
Comments
Karthik_Mahalingam 29-Apr-16 12:19pm    
5

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900