我一直在处理登录表单,我一直在努力解决这个问题。从本质上讲,if()语句并不是我所期望的。即使core.user / core.pass与设定值完全匹配,也无法达到成功案例。
function validateLoginForm()
{
//var x = document.forms["myForm"]["username"].value;
//var y = document.forms["myForm"]["password"].value;
"use strict";
var username = document.forms["myForm"]["username"].value;
var password = document.forms["myForm"]["password"].value;
console.log("username:" + username);
console.log("password:" + password);
var coreUser = "testUser";
var corePass = "testPass";
if (username.value === coreUser) {
console.log("username matches");
if(password.value === corePass) {
console.log("You are logged in as " + username.value);
}
else {
alert("Password invalid");
}
}
else {
alert("Username invalid");
}
}
<div class="loginPage">
<div name="myForm" class="form">
<div id ="login">
<form class="login-form" name="myForm">
<h2>Login Page</h2>
<input name="username" id="username" type="text" placeholder="enter username"/>
<input name="password" id="password" type="password" placeholder="enter password"/>
<button type="button" onclick="validateLoginForm()">login</button>
<p class="message">Don't have an account? <a href="#register" id="register_profile">Register</a></p>
</form>
</div>
</div>
</div>
答案 0 :(得分:1)
param1=value1
和password
已包含该值。因此,您尝试在返回username
的字符串上调用.value
。当您使用undefined
和.value
这样的变量时,只需删除password
。
username
此外,使用debugger可以轻松找到此类错误。你应该花时间学习如何使用它,因为它将为你节省大量的时间。 (每个现代浏览器在开发工具中都有一个JS调试器)
答案 1 :(得分:-1)
您只需从username.value&amp;中移除.value即可。 password.value
用户喜欢在下面
用户名=== coreUser
密码=== corePass
在javascript验证中,如果值无效,我们应该有return语句。 例如:
if(username !== coreUser || username ==='') {
alert("Username invalid");
return false;
} else if(password !== corePass || password === '') {
alert("Password invalid");
return false;
} else {
console.log("username matches");
console.log("You are logged in as " + username);
}