使用Javascript和表单将表单信息用作变量

使用Javascript和表单将表单信息用作变量,javascript,forms,alert,var,Javascript,Forms,Alert,Var,好的,Stack Overflow的同学们,我有一个问题要问你们:我在高中的一个网页设计课上,在课前学习,因为我已经知道了课程的前半部分。老师问我是否可以教我所学的Javascript,我同意了。然而,她想让我教的一件事是,当我自己尝试时,它对我不起作用。我试图对一个变量做一个简单的检查,当你在一个框中输入一个名字时,如果是我的名字或老师的名字,它会弹出一个弹出窗口,上面写着“欢迎”或类似的东西,如果是其他人,它会写着“走开”,唯一的问题是,无论我尝试什么,代码中的某些东西都不起作用。这是我目前

好的,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>

var name=document.KageForm.User.value;
函数验证器(){
警报(名称);
}
用户名:

密码:
以下是我正在尝试使用的代码的完整版本:

<!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>

var name=document.KageForm.User.value;
函数验证器(){
如果(名称=“Kage Kaldaka”){
警报(“Eeyup”)};
其他的
警报(“Nnope”);
}
用户名:

密码:

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

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

jsiddle:

这里有几个问题:

  • if
    语句后面有一个分号
  • 您正在页面加载时读取名称值,此时输入字段甚至还没有添加到页面中,用户肯定还没有填写。当用户提交表单时,您需要阅读它,即您需要将
    名称
    分配移动到
    验证程序
    方法中:
JS:


您正在函数外设置变量:

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

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

var name=document.KageForm.User.value;
函数验证器(){
如果(名称=“Kage Kaldaka”){
警报(“Eeyup”)};
其他的
警报(“Nnope”);
}
这意味着
var name
在页面加载时设置,但在其他时间不设置。将其移动到
validator()


您还以分号结束了
if
,这将导致
else
部分出错。

除了前面的所有答案之外,在JavaScript中使用===not===

您所说的“良好方式”是什么意思。这与礼貌无关,这两个操作符的意思不同。你是对的,但重要的是要知道它们之间的区别。在本例中==和===具有相同的效果,但是当您不需要使用==时,我认为应该使用===。这就像“严格使用”争论,双方都有很多争论。这是我的想法,我读了很多文章,我认为这是一个好习惯。非常感谢!这是我第一次做这样的事情,所以我不知道变量的这一部分。如果你不介意的话,我还有一个问题,我认为相对简单:出于某种原因,每当我调用使用document.write的函数时,它都会从按钮或输入中删除页面上的所有样式。你知道这是什么原因吗?
<script type="text/javascript">
var name = document.KageForm.User.value;

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