Javascript if-else循环问题

Javascript if-else循环问题,javascript,html,forms,Javascript,Html,Forms,我一直在做一个登录表单,我一直在努力想办法解决这个问题。本质上,if()语句并没有达到我所期望的效果。即使core.user/core.pass与设置的值完全匹配,也不会成功 function validateLoginForm() { //var x = document.forms["myForm"]["username"].value; //var y = document.forms["myForm"]["password"].value;

我一直在做一个登录表单,我一直在努力想办法解决这个问题。本质上,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>
函数validateLoginForm()
{
//var x=document.forms[“myForm”][“username”].value;
//var y=document.forms[“myForm”][“password”].value;
“严格使用”;
var username=document.forms[“myForm”][“username”].value;
var password=document.forms[“myForm”][“password”].value;
console.log(“用户名:”+username);
console.log(“密码:”+密码);
var coreUser=“testUser”;
var corePass=“testPass”;
if(username.value==coreUser){
日志(“用户名匹配”);
if(password.value==corePass){
console.log(“您以“+username.value”的身份登录);
}
否则{
警报(“密码无效”);
}
}
否则{
警报(“用户名无效”);
}
}
登录页面
登录

没有帐户吗


密码
用户名
已包含该值。因此,您试图对返回
未定义
的字符串调用
.value
。当您使用像这样的
密码
用户名
变量时,只需删除
.value

 if (username === coreUser) {
     //...
     if(password === corePass) {
         //...

而且,这种bug很容易通过一个。你应该花时间学习如何使用它,因为它将在将来为你节省大量的时间。(每个现代浏览器的开发工具中都有一个JS调试器)

您只需从username.value和password.value中删除.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);
}

if(username==coreUser){这里的这一行
if(username.value==coreUser){
应该是
if(username==coreUser){..
。因为它已经是值了。为什么要添加注释而不是发布答案@litelite@tiagodws
为什么要评论而不是发布答案?
,哦,不要去那里:)有些用户喜欢说
这不是答案,这是评论,即使是答案,
,然后记下你的答案可能需要,但我认为一些用户正试图避免即时标记。真的很丢脸。!!@tiagodws我偶尔会在“答案”下面发布这一点,但这不是一个真正的问题,它很快就会被删除,所以人们是否发布简单的答案或者发表评论并不重要。