无法使用Javascript。有一段时间没有这样做

问题描述:

我想记住如何做到这一点。我需要创建两个密码字段并且密码必须匹配。通过按下按钮来检查它们是否匹配。他们必须有一个大写字母和一个数字,长度为4个字符。如果密码通过了所有这些,你就可以进入另一个页面。无法使用Javascript。有一段时间没有这样做

到目前为止,我

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 

<html> 
<head> 
<script type="text/javascript"> 
function password() 
{ 
var pwd1 = document.getElementsByName("pwd1").value; 
var pwd2 = document.getElementsByName("pwd2").value; 

if(pwd1 == pwd2) 
{ 
window.location.href = '...'; 
} 
else 
{ 
Alert("Passwords do not match or your password is not longer than 4 characters"); 
} 
} 

</script> 
</head> 
<body> 

<input type="password" name="pwd1"/> 
<input type="password" name="pwd2"/> 
<input type="button" onClick="password();" value="Submit" /> 


</body> 
</html> 

错误条件...

(pwd1 != pwd2 || pwd1.length >= 4 || ! pwd1.match(/\d/) || ! pwd1.match(/[A-Z]/)) 

此外,alert()没有资本,你的元素的选择需要下标([0])的第一。

jsFiddle

+0

@ZacharyBurt:哎呦,纠正:) – alex 2011-12-16 02:12:25

+0

所以这应该是到位的“pwd1 == pwd2”中的if语句? – 2011-12-16 02:19:20

好吧,那么你的密码的功能应该是这个样子:

function password() { 
    var pwd1 = document.getElementsByName("pwd1")[0].value 
    , pwd2 = document.getElementsByName("pwd2")[0].value 
    , rules = /(?=.*\d)(?=.*[A-Z])/; 

    if(pwd1 === pwd2 && pwd1.length >= 4) { 
    if(rules.test(pwd1)) { 
     // redirect them now 
     // window.location.href = ... 
    } else { 
     alert('Password must contain at least 1 Capital letter and 1 digit'); 
    } 
    } 
    else{ 
    alert('Passwords must match and be at least 4 characters'); 
    } 
}