JavaScript getElementByID() not working

JavaScript getElementByID() not working

At the point you are calling your function, the rest of the page has not rendered and so the element is not in existence at that point. Try calling your function on window.onload maybe. Something like this:

<html>
<head>
    <title></title>
    <script type=text/javascript>
        window.onload = function(){
           var refButton = document.getElementById(btnButton);

            refButton.onclick = function() {
                alert(I am clicked!);
            }
        };
    </script>
</head>
<body>
    <form id=form1>
    <div>
        <input id=btnButton type=button value=Click me/>
    </div>
    </form>
</body>
</html>

You need to put the JavaScript at the end of the body tag.

It doesnt find it because its not in the DOM yet!

You can also wrap it in the onload event handler like this:

window.onload = function() {
var refButton = document.getElementById( btnButton );
refButton.onclick = function() {
   alert( I am clicked! );
}
}

JavaScript getElementByID() not working

Because when the script executes the browser has not yet parsed the <body>, so it does not know that there is an element with the specified id.

Try this instead:

<html>
<head>
    <title></title>
    <script type=text/javascript>
        window.onload = (function () {
            var refButton = document.getElementById(btnButton);

            refButton.onclick = function() {
                alert(Dhoor shala!);
            };
        });
    </script>
    </head>
<body>
    <form id=form1>
    <div>
        <input id=btnButton type=button value=Click me/>
    </div>
</form>
</body>
</html>

Note that you may as well use addEventListener instead of window.onload = ... to make that function only execute after the whole document has been parsed.

Leave a Reply

Your email address will not be published.