美好的一天我是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>
答案 0 :(得分:0)
您正在使用&#34; =&#34;来比较字符串。尝试使用xml.childNodes[i].nodeName=="username"
和密码相同的if。也不要使用与英语不同的其他语言命名变量。很难读懂。