Javascript密码提交-表单

Javascript密码提交-表单,javascript,html,forms,passwords,Javascript,Html,Forms,Passwords,我正在尝试为表单设置密码。我基本上希望有人在密码字段中键入密码,然后点击submit,如果密码正确,它会将他们重定向到同一窗口中的buybutton.php。如果密码不正确,会弹出一个javascript警报,提示“密码错误”。我试着写出Javascript,但是当点击按钮时没有任何动作发生。我在下面的代码中做错了什么?谢谢你的帮助 <!DOCTYPE html> <body width="950" height="300" style="background-image:ur

我正在尝试为表单设置密码。我基本上希望有人在密码字段中键入密码,然后点击submit,如果密码正确,它会将他们重定向到同一窗口中的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>

函数goForit(){
var-passwd;
passwd=this.document.giftForm.pass.value;
if(passwd==“samsam”){
window.open('buybutton.php','u self',false)
}
否则{
警报(“密码错误”);
}
}


您应该使用
document.getElementById('pass').value
而不是
this.document.giftForm.pass.value

警告语:

但是要注意!每个人都可以看到源代码和找到密码

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


但是我不是专家,如果你想问这个问题,你应该再问一个问题。

你应该使用
document.getElementById('pass').value
而不是
this.document.giftForm.pass.value

警告语:

但是要注意!每个人都可以看到源代码和找到密码

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

但我不是专家,如果你想问我,你应该再问一个问题。

这应该行得通

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

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

Oriol和Rajeev的回答是正确的

或者,您可以执行以下操作:

改变

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


Oriol和Rajeev的回答是正确的

或者,您可以执行以下操作:

改变

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

导致错误,请重试

passwd = document.getElementById('pass').value;
您缺少一个
之后也是code>('buybutton.php','u self',false)

导致错误,请重试

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

您缺少一个
('buybutton.php','u self',false)

希望您不要依赖于此实现任何真正的安全性。仅供参考,HTML无效:它是
。你不应该把
嵌套在
里面。是的@j08691,这不一定是一个超级安全的东西,它只是我们正在运行的一个有趣的小促销活动,所以如果他们看到密码,这并不是什么大问题。哈哈,这绝对不是有效的…希望你不要依赖它来实现任何真正的安全性。仅供参考,HTML是无效的:它是
。你不应该把
嵌套在
里面。是的@j08691,这不一定是一个超级安全的东西,它只是我们正在运行的一个有趣的小促销活动,所以如果他们看到密码,这并不是什么大问题。哈哈,这绝对不会有效…你的代码不会工作输入字段中没有“name”属性我真的很抱歉,你的代码工作得很好,但我可以把一切归咎于oo jQuery,我们实际上忘记了核心Javascript你的代码不会工作输入字段中没有“name”属性我真的很抱歉,您的代码运行得很好,但我可以把所有的责任都归咎于oo jQuery,我们实际上忘记了核心Javascript非常感谢。对于这一点,如果有人看了源代码,那也没什么大不了的。这是我们正在做的一个真正快速的促销活动,只是我们通过它给人们的一个小折扣。我将重温我的服务器端密码授权,因为我相信这将是我将来需要的东西。谢谢你给我指出了正确的方向。非常感谢。对于这一点,如果有人看了源代码,那也没什么大不了的。这是我们正在做的一个真正快速的促销活动,只是我们通过它给人们的一个小折扣。我将重温我的服务器端密码授权,因为我相信这将是我将来需要的东西。谢谢你给我指明了正确的方向。