Javascript密码提交 - 表格

时间:2012-08-16 17:19:17

标签: javascript html forms passwords

我正在尝试为表单设置密码。我基本上希望有人在密码字段中输入密码并点击提交,如果密码是正确的,它会在同一个窗口中将它们重定向到buybutton.php。如果密码不正确,会弹出一个“密码错误”的javascript警告。我试图写出Javascript,但单击按钮时没有动作。我在下面的代码中做错了什么?谢谢你的帮助!

<!DOCTYPE html>
<body width="950" height="300" style="background-image:url('giftcard_bg.jpg');">
<head>
<SCRIPT LANGUAGE="JavaScript">
    function goForit() {
      var passwd;
      passwd = this.document.giftForm.pass.value;
      if(passwd=="samsamsam"){
      window.open ('buybutton.php','_self',false)
      }
      else{
      alert('Password wrong');
      }
    }
</SCRIPT>
</head>


<div style="position:absolute; top:150px; left:285px; text-align:center;">
    <form id="giftForm">        
        <input type="password" id="pass" placeholder="Enter Secret Code" style="font-size:150%;"/>
        <br />
        <input type="button" onClick="goForit()" value="Submit" style="font-size:150%; margin-top:15px;" />                 
     </form>
</div>

</body>
</html>

4 个答案:

答案 0 :(得分:2)

您应该使用document.getElementById('pass').value代替this.document.giftForm.pass.value

function goForit() {
  var passwd;
  passwd = document.getElementById('pass').value;
  if(passwd=="samsamsam"){
  window.open ('buybutton.php','_self',false)
  }
  else{
  alert('Password wrong');
  }
}

警告语:

但请注意!每个人都可以看到源代码并找到密码!!!

而不是这样,您应该将表单发送到服务器,并在服务器端检查它是否正确。如果它是正确的,将用户重定向到buybutton.php,但向他发送一个cookie,授权他进入该页面。该页面应检查他是否有该cookie。

但我不是专家,如果你想要,你应该提出另一个问题。

答案 1 :(得分:1)

passwd = this.document.giftForm.pass.value; 

导致错误尝试

passwd = document.getElementById('pass').value;

在window.open ;

之后,你也错过了('buybutton.php','_self',false)

答案 2 :(得分:0)

这应该有效

function goForit() {
      var passwd = document.getElementById("pass").value;
      if(passwd=="samsamsam"){
      window.open ('buybutton.php','_self',false)
      }
      else{
      alert('Password wrong');
      }
    }

答案 3 :(得分:0)

Oriol和Rajeev的回答是正确的。

或者,你可以这样做:

变化

passwd = this.document.giftForm.pass.value;

passwd = document.forms['giftForm'].pass.value;