代码生成((一)验证二次输入密码一致。用jQuery完成: 1.上下两个输入框,下面一个验证按钮 2.输入框获得焦点时改变输入框背景色(颜色自定义),失去焦点后恢复原颜色。 3.密码由数字和大写字母和小写字母三种中至少二种组成,长度为6至10位, 4.密码输入后以“*”号显示, 5.输入完成后输入框失去焦点时,用正则表达式进行判断密码形式是否满足要求,输入有误时在输入框后面显示输入密码类型或长度错误。 6.从二个文本框中输入密码一致时,用警告框提示验证通过,否则提示不通过; 7.验证三次密码不一致时,验证按钮禁用3分钟,3分钟之后解除禁止。)
时间: 2024-03-16 11:47:52 浏览: 54
以下是代码实现:
```html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Password Verification</title>
<style>
input {
margin-bottom: 10px;
padding: 5px;
border-radius: 5px;
border: 1px solid #ccc;
}
.error {
color: red;
font-size: 12px;
margin-top: 5px;
}
.success {
color: green;
font-size: 12px;
margin-top: 5px;
}
</style>
</head>
<body>
<h3>Password Verification</h3>
<input type="password" id="password1" placeholder="Enter password">
<input type="password" id="password2" placeholder="Re-enter password">
<button id="verifyBtn">Verify</button>
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script>
let attempts = 0;
let disabled = false;
function validatePassword() {
let password1 = $('#password1').val();
let password2 = $('#password2').val();
// Check if passwords match
if (password1 === password2) {
let regex = /^(?=.*[a-z])(?=.*[A-Z0-9])[a-zA-Z0-9]{6,10}$/;
if (regex.test(password1)) {
$('#password1').next('.error').remove();
$('#password1').next('.success').remove();
$('#password2').next('.error').remove();
$('#password2').next('.success').remove();
$('#password1').after('<span class="success">Password is valid</span>');
$('#password2').after('<span class="success">Password is valid</span>');
return true;
} else {
$('#password1').next('.error').remove();
$('#password1').next('.success').remove();
$('#password2').next('.error').remove();
$('#password2').next('.success').remove();
$('#password1').after('<span class="error">Password should contain at least 1 lowercase letter, 1 uppercase letter or digit. Length should be between 6 to 10 characters</span>');
$('#password2').after('<span class="error">Password should contain at least 1 lowercase letter, 1 uppercase letter or digit. Length should be between 6 to 10 characters</span>');
return false;
}
} else {
$('#password1').next('.error').remove();
$('#password1').next('.success').remove();
$('#password2').next('.error').remove();
$('#password2').next('.success').remove();
$('#password1').after('<span class="error">Passwords do not match</span>');
$('#password2').after('<span class="error">Passwords do not match</span>');
return false;
}
}
$(document).ready(function() {
$('#password1').focus(function() {
$(this).css('background-color', '#f0f0f0');
});
$('#password1').blur(function() {
$(this).css('background-color', '#fff');
});
$('#password2').focus(function() {
$(this).css('background-color', '#f0f0f0');
});
$('#password2').blur(function() {
$(this).css('background-color', '#fff');
});
$('#verifyBtn').click(function() {
if (disabled) {
alert('Verification button is disabled for 3 minutes');
return;
}
if (validatePassword()) {
attempts = 0;
alert('Passwords match. Verification successful!');
} else {
attempts++;
if (attempts === 3) {
disabled = true;
setTimeout(function() {
disabled = false;
attempts = 0;
}, 180000); // 3 minutes
}
}
});
});
</script>
</body>
</html>
```
首先,我们在 HTML 中创建两个密码输入框和一个验证按钮。我们使用 jQuery 来监听输入框的焦点事件,改变输入框的背景色。也使用 jQuery 在输入框后面添加错误或成功信息。我们还使用正则表达式来验证密码是否符合要求。
在验证按钮的点击事件中,我们调用 `validatePassword` 函数来检查密码是否匹配和是否符合要求。如果密码验证成功,我们弹出一个警告框,表示验证通过。如果验证失败,则增加 `attempts` 变量的值,表示尝试次数加1。如果尝试次数达到3次,则禁用验证按钮3分钟,然后重新启用它。
阅读全文