用JavaScript制作的用户名和密码表单

时间:2014-11-10 17:46:31

标签: javascript html forms function

我正在为我的网页制作简单的用户名/密码登录表单,并且无法使其正常工作。

我已仔细检查了所有代码,jsfiddle.net表示代码有效,但当我尝试使用正确的用户名和密码点击“提交”时,它会弹出最后一行的警告用户名/密码不正确的功能。

JavaScript的:

 var un = window.document.userform.formuser.value;
 var pw = window.document.userform.formpass.value;
 function findPass()
 {
 if(un + "_" + pw == "demo_demo")
  {window.location.href='../pages/demouser.html';}
  else if (un + "_" + pw == "user2_pass2") {
     window.location.href='pages/user2.html';
  }
  else {alert('Incorrect username/password');}
 }

HTML:

 <form name="userform" action="javascript:findPass();" style="margin:0;">
 Username:<input type="text" name="formuser"><br>
 Password:<input type="password" name="formpass"><br>
 <input type="submit" value="  Sign In  ">

我在各处搜索过,无法找到解决问题的方法。 此外,服务器不支持php,所以我更喜欢使用这种方法。

我做错了什么?

3 个答案:

答案 0 :(得分:0)

&#13;
&#13;
 var un = window.document.userform.formuser.value;
 var pw = window.document.userform.formpass.value;
&#13;
&#13;
&#13;

当浏览器评估这些行时,您的表单仍为空,您需要为您的

分配处理程序

&#13;
&#13;
 <input type="submit" value="  Sign In  ">
&#13;
&#13;
&#13;

答案 1 :(得分:0)

问题是当你定义这两行时:

 var un = window.document.userform.formuser.value;
 var pw = window.document.userform.formpass.value;

页面尚未加载。将这些行移动到findPass方法中,以便在单击按钮时(以及页面加载后)检索它们。

答案 2 :(得分:0)

与epascarello一样说:您正在阅读页面加载时的值,而不是用户单击按钮时。

通过更改此内容来解决此问题:

<script language="javascript">
var un = window.document.userform.formuser.value;
var pw = window.document.userform.formpass.value;
 function findPass() {
your code ...
 }

到这个

<script language="javascript">
     function findPass() {
var un = window.document.userform.formuser.value;
var pw = window.document.userform.formpass.value;
rest of your code ...
 }

希望这对你有所帮助!