[英]Password validation won't work Javascript
試圖讓我的頁面使用長度為8個或更多字符的密碼,其中包含數字和字母,但是密碼不起作用,我不明白為什么。 密碼有效后,會將用戶帶到成功頁面。
CODE:
<script>
$(document).ready(function() {
$("#submit").click(function() {
var name = document.getElementById("name").value;
var email = document.getElementById("email").value;
var password = document.getElementById("password").value;
var confirm = document.getElementById("confirm").value;
var valid = password.length >= 8 // at least 8 characters
&& /[a-z]/.test(password) // contains a lowercase letter
&& /\d/.test(password) // contains a digit
var dataString = 'name=' + name + '&email=' + email + '&password=' + password;
console.log(dataString);
if (name == '' || email == '' || password == '') {
alert("Fill in empty fields");
}
if (password != confirm) {
alert("Passwords do not match.");
} else if (password == confirm && password != valid) {
alert("Password not valid.");
} else if(password == '' && confirm == '' && password == confirm) {
alert("password can't be empty");
} else {
alert("matched");
window.location="newpage.html"
}
return false;
});
});
</script>
請幫我 :(
if(password == confirm && !valid)
應該是那樣。
與其將其分解為更小的功能,不如將其分解為一個巨大的功能。 這樣更容易管理任何錯誤,錯誤,維護等。
現在,專門回答關於“密碼驗證功能”的問題,請檢查此代碼段。
(function($){ $(function(){ var isPasswordValid = function(password){ return password.length >= 8 && /[az]/.test(password) && /\\d/.test(password) } console.log('Is "weakpwd" valid?', isPasswordValid('weakpwd')); console.log('Is "atLeastEightChars" valid?', isPasswordValid('atLeastEightChars')); console.log('Is "Gr3atPassword!" valid?', isPasswordValid('Gr3atPassword!')); }) })(jQuery)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
我使用了與密碼相同的檢查方法...很好! 這意味着您遇到的問題不在別的地方,而不是在密碼檢查步驟中。
干杯,
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.