1

好的,Stack Overflow 的人,我有一个问题要问你:我在高中的网页设计课上学习,因为我已经知道了课堂的前半部分。我的老师问我是否可以教我学到的关于 Javascript 的知识,我同意了。然而,当我自己尝试时,她想让我教的一件事对我不起作用。我正在尝试对变量进行简单检查,当您在框中输入姓名时,如果是我的姓名或老师的姓名,它会弹出一个显示“欢迎”或类似内容的弹出窗口,如果是任何人否则它会说“走开”,唯一的问题是,无论我尝试什么,代码中的某些东西都不起作用。这是我目前拥有的测试功能;它旨在打印出

<!doctype html>
<html>

<head>


<script type="text/javascript">
    var name = document.KageForm.User.value;

      function validator(){
        alert(name);

    }
    </script>

    </head>
    <body>

    <form name="KageForm">
        Username:<input type="text" name="User">
    <br/>
        Password: <input type="password" name="pass">
    <br/>
    <input type="button"value="Submit" onclick="validator()" />
    </form>


    <script type="text/javascript">
    </script>
</body>
</html>

这是我试图开始工作的代码的完整版本:

<!doctype html>
<html>

<head>


<script type="text/javascript">
    var name = document.KageForm.User.value;

      function validator(){
if(name=="Kage Kaldaka"){
            alert("Eeyup")};
        else
            alert("Nnope");
    }
    </script>

    </head>
    <body>

    <form name="KageForm">
        Username:<input type="text" name="User">
    <br/>
        Password: <input type="password" name="pass">
    <br/>
    <input type="button"value="Submit" onclick="validator()" />
    </form>
    </body>
    </html>
4

4 回答 4

2

您在这里有几个问题:

  • if语句后有一个分号
  • 您正在读取页面加载时的名称值,此时输入字段甚至还没有添加到页面中,并且用户肯定还没有填写。您需要在用户提交表单时阅读它,即您需要name在方法内移动赋值validator

JS:

function validator(){
    var name = document.KageForm.User.value;
    if(name=="Kage Kaldaka"){
        alert("Eeyup");
    } else {
        alert("Nnope");
    }
}
于 2013-04-08T22:47:05.770 回答
0

除了所有先前的答案之外,在 JavaScript 中使用 === 而不是 == 是一种很好的方式

于 2013-04-08T22:54:07.803 回答
0

后面不应该有分号if。您还必须将变量放入函数中以使其更新:

function validator(){
    var name = document.KageForm.User.value;
    if(name=="Kage Kaldaka"){
        alert("Eeyup")
    } else {
        alert("Nnope");
    }
}

JSFiddle:http: //jsfiddle.net/FhCTc/1/

于 2013-04-08T22:45:28.357 回答
0

您在函数之外设置变量:

<script type="text/javascript">
var name = document.KageForm.User.value;

function validator(){
  if(name=="Kage Kaldaka"){
        alert("Eeyup")};
    else
        alert("Nnope");
}
</script>

这意味着var name在页面加载时设置,但没有其他时间。将其移入validator().

您还以if分号结尾,这会导致该else部分出错。

于 2013-04-08T22:48:45.077 回答