Javascript if question question

function valid()
{
    begin_checked = false;
    end_checked = false;

    alert("begin_checked: " +begin_checked);
    alert("end_checked: " +end_checked);

    if (document.dd.begin.checked.length == undefined || document.dd.end.checked.length == undefined )
    {
        alert("In undefined");
    }

    alert("end");
}

When the if statement is false, does it never receive a warning ("end")? When true, it is executed correctly. What for?

+3
source share
3 answers

There is probably a null pointer exception, and you have no errors being output to your browser.

To check, you need to get the following result:

alert(document);
alert(document.dd);
alert(document.dd.begin);
alert(document.dd.begin.checked);
alert(document.dd.end);
alert(document.dd.end.checked);

If you get undefined from any of them, your code will not execute correctly.

Edit: Also, the other answers here have good info. Read also.

Edit2: Alternative - merge your code in a try / catch block and report an error:

function valid(){

    try{
        begin_checked = false;
        end_checked = false;

        alert("begin_checked: " +begin_checked);
        alert("end_checked: " +end_checked);

        if (document.dd.begin.checked.length == undefined || document.dd.end.checked.length == undefined ){
            alert("In undefined");
        }

        alert("end");

    } catch (e) {
        alert(e);
    }

}
+8
source

? , , , ( == undefined). , of, , undefined.

if (!document.dd.begin.checked.length || !document.dd.end.checked.length)
{
    alert("In undefined");
}

if (typeof document.dd.begin.checked.length == 'undefined' || typeof document.dd.end.checked.length == 'undefined' )
{
    alert("In undefined");
}
+3

Source: https://habr.com/ru/post/1705482/


All Articles