0

Learning HTML,CSS & JavaScript. I am wondering why is the following code not working even when I enter the correct data. error.

Here's the code:

    <!DOCTYPE html>
<html lang="en">
<head>
    <title>Test</title>
</head>
<body>
    Username:
    <br>
    <input type="text" name="" id="username"> 
    <br>
    Password:
    <br>
    <input type="text" id="password">
    <br>
    <button onclick="validate();">Submit</button>

    <script>
        // verification
        function validate(){
            var a=document.getElementById(username);
            var b=document.getElementById(password);
            // even if i enter the correct credentials only the if part runs.
            if(a!="admin" || b!=1234){
                alert("Incorrect username or password.\nRetry Please!");
                // opening the same page
                window.open("jsvalidate.html","_self");
            }
            else{
                alert("Welcome" + a);
                // opening some other page.
                window.open("new.html","_self");
            }
        }
    </script>
</body>
</html>

And No I am not creating a validation page I know it should be done with ajax or php, I'm just wondering why it's not working. Please provide me an explanation so that I remember this for my life. Thanks!

  • Did you checked your console for errors? `username` should throw one since it's not defined. – 0stone0 May 19 '22 at 12:39
  • no error in the console, or do you want me to use console.log(); ? – Mayuresh Rawal May 19 '22 at 12:40
  • 2
    @0stone0 it won't throw because it actually exists: [Do DOM tree elements with IDs become global properties?](https://stackoverflow.com/q/3434278) – VLAZ May 19 '22 at 12:40

0 Answers0