无法登录总是失败

时间:2017-05-07 00:04:22

标签: javascript html xml dom web

美好的一天我是webdev的新手。我试图创建一个项目,其中有一个登录表单,用户将输入他们的用户名和密码。无论何时单击该按钮,它将显示一条消息登录成功,如果用户名和密码未存储在xml中,它将显示登录失败!!。有人可以告诉我代码的错误吗?登录时保持警报信息点击按钮时登录失败。下面是代码。请提前获取帮助。

这是user.xml代码

user.xml

<users>
    <user>
        <username>A</username>
        <password>12345</password>
    </user>
</users>

继承了login.html代码

<!DOCTYPE HTML>
<html lang="en-US">
    <head>
    </head>
    <body>
        <form id="frmlogin" name="frmlogin" method="post" action="Login" onsumbit="return false;">
            <p>ENTER USER NAME <input type="text" name="login_username" id="username"></p>
            <p> ENTER PASSWORD <input type="password" name="login_pass" id="password"><br><br>
                <input type="button" class="button" value="Log in" onclick="login()">
            </p>

        </form>
        <script>            
            window.login = function(e)
            {

                if (document.frmlogin.login_username.value == "") 
                {
                    alert("User name is not blank");
                    return;
                }
                else if(document.frmlogin.login_pass.value == "")
                {
                    alert("Password is not blank");
                    return;
                }

                else
                {
                    var xmlDoc;
                    if (window.XMLHttpRequest) {
                        xhttp = new XMLHttpRequest();
                    } else {    // IE 5/6
                        xhttp = new ActiveXObject("Microsoft.XMLHTTP");
                    }

                    xhttp.overrideMimeType('text/xml');

                    xhttp.open("GET", "user.xml", false);
                    xhttp.send(null);
                    xmlDoc = xhttp.responseXML;

                    var ktra=true;
                    var xml=xmlDoc.childNodes[0].childNodes[1];

                    var name = xml.childNodes["username"];        
                    var pass=xml.childNodes["password"];
                    for(var i=0;i<xml.childNodes.length;i++){
                        if(xml.childNodes[i].nodeName="username")
                            name = xml.childNodes[i];
                        if(xml.childNodes[i].nodeName="password")
                            pass = xml.childNodes[i];
                    }
                    if(name.textContent==frmlogin.login_username.value &&pass.textContent==frmlogin.login_pass.value)
                    {
                        ktra=true;        

                    }
                    else
                    {
                        ktra=false;
                    }

                    if(ktra==true)
                    {
                        alert("Login Successfully !!!");
                    }
                    else
                    {
                        alert("Login Failed !!!");
                    }
                }
            }
        </script>
    </body>
</html>

1 个答案:

答案 0 :(得分:0)

您正在使用&#34; =&#34;来比较字符串。尝试使用xml.childNodes[i].nodeName=="username"和密码相同的if。也不要使用与英语不同的其他语言命名变量。很难读懂。