我正在尝试为表单设置密码。我基本上希望有人在密码字段中输入密码并点击提交,如果密码是正确的,它会在同一个窗口中将它们重定向到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>
答案 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;