(一)验证二次输入密码一致。要求: (本题15分) 1、输入框获得焦点时改变输入框背景色(颜色自定义),失去焦点后恢复原颜色。 2、密码由数字和大小写字母中至少二种组成,长度为6至10位,密码输入后以“*”号显示,输入完成后输入框失去焦点时,用正则表达式进行判断密码形式是否满足要求,输入有误时在输入框后面显示输入密码类型或长度错误。 3、从二个文本框中输入密码一致时,用警告框提示验证通过,否则提示不通过; 4、验证三次密码不一致时,验证按钮禁用3分钟,3分钟之后解除禁止。 5、使用jQuery完成本题。
时间: 2024-02-29 11:52:47 浏览: 83
好的,我会尽力回答您的问题。对于您的第一个问题,以下是一个基本的实现思路:
1. 给两个密码输入框绑定获得和失去焦点事件,通过改变输入框的背景色来提示当前输入框是否获得了焦点。
2. 在失去焦点事件中,使用正则表达式判断密码是否符合要求,如果不符合,显示相应的错误信息。
3. 给“验证”按钮绑定点击事件,在点击事件中判断两个密码输入框中的密码是否一致,如果不一致,提示相应的错误信息。
4. 使用计数器记录密码不一致的次数,如果超过了三次,则禁用“验证”按钮3分钟。
具体实现细节可以参考以下代码,其中用到了jQuery库:
HTML代码:
```html
<label for="password1">请输入密码:</label>
<input type="password" id="password1">
<br>
<label for="password2">请再次输入密码:</label>
<input type="password" id="password2">
<br>
<button id="validate">验证</button>
<div id="error"></div>
```
JavaScript代码:
```javascript
$(function() {
var error = $("#error"); // 错误信息提示框
var password1 = $("#password1"); // 第一个密码输入框
var password2 = $("#password2"); // 第二个密码输入框
var validate = $("#validate"); // 验证按钮
// 给密码输入框绑定获得和失去焦点事件
password1.focus(function() {
$(this).css("background-color", "#FFFFCC");
}).blur(function() {
$(this).css("background-color", "#FFFFFF");
validatePassword($(this).val());
});
password2.focus(function() {
$(this).css("background-color", "#FFFFCC");
}).blur(function() {
$(this).css("background-color", "#FFFFFF");
validatePassword($(this).val());
});
// 给验证按钮绑定点击事件
validate.click(function() {
if (password1.val() === password2.val()) {
alert("验证通过!");
error.hide();
} else {
error.text("两次密码不一致!").show();
incrementCounter();
}
});
// 验证密码是否符合要求
function validatePassword(password) {
var regex = /^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]{6,10}$/;
if (!regex.test(password)) {
error.text("密码由数字和大小写字母中至少二种组成,长度为6至10位!").show();
incrementCounter();
} else {
error.hide();
}
}
// 计数器,记录密码不一致的次数
var counter = 0;
// 每次密码不一致时,计数器加1
function incrementCounter() {
counter++;
if (counter >= 3) {
validate.prop("disabled", true); // 禁用验证按钮
setTimeout(function() {
validate.prop("disabled", false); // 解除禁用
counter = 0; // 计数器清零
}, 180000); // 3分钟后解除禁用
}
}
});
```
希望这个基本的实现思路能够帮助您完成相应的需求。
阅读全文