首页 > 解决方案 > 我的javascript似乎有问题

问题描述

我做了一些简单的代码来检查用户名和密码。但它不起作用。我还在学习 html 并像几天前一样开始学习 javascript,所以任何人都可以查明问题并解释原因吗?这是一个小代码,所以这是整个事情:

function loginCheck() {
  var u = document.form1.u1.value;
  var p = document.form1.p1.value;
  if (u == "us1" and p == "pa1") {
    document.form1.n.disabled = false;
  } else {
    alert("Invalid credentials";
    }
  }
<form name="form1" method="get">
  Username: <input type="text" name="u1" size="20"><br><br> 
  Password: &nbsp;<input type="password" name="p1" size="20"><br><br>
  <input type="button" value="Login" onClick="loginCheck()"><br><br> 
  Enter name: <input type="text" name="n" size="20" disabled="true">

预期结果是:如果正确,应启用“输入名称”字段。如果错误,输出应为“无效凭据”。

但什么都没有发生

标签: javascripthtml

解决方案


直接通过document对象访问元素非常脆弱,并且依赖于所有周围的 html、您使用的 html 规范等。

通常最好的做法是id在表单上放置一个属性,然后通过document.getElementById(yourId).

但是,如果您正在使用事件处理程序,就像您在这里一样。您可以onclick通过检查处理程序的第一个参数(通常命名为event. 你这样做是通过event.target.


推荐阅读