开发一个密码修改表单界面,监听表单提交事件,当提交表单时完成3种检查:检查旧密码字符个数是否符合6~12,否则在旧密码输入框后面提示“密码长度有误”;检查新密码和确认密码是否一致,如果不一致则在确认密码的输入框下面以红色字体提示“密码不一致”;新密码必须包含数字、字母和特殊符号检查新密码是否含有数字、字母和特殊符号,如果没有就在新密码输入框下提示“密码必须包括数字、字母和特殊符号”;并在提交表单后在控制台显示旧密码,新密码和确认密码
时间: 2024-02-03 20:15:45 浏览: 92
FormWithRegexp:检查电子邮件是否正确、密码是否至少有 8 个字符(1 个大写字母、1 个最小字母、1 个数字)以及密码是否匹配的表单
这是一个基于 HTML 和 JavaScript 实现的示例代码:
```html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>修改密码</title>
</head>
<body>
<h1>修改密码</h1>
<form id="password-form">
<div>
<label for="old-password">旧密码:</label>
<input type="password" id="old-password" required minlength="6" maxlength="12">
<span id="old-password-error" style="color: red;"></span>
</div>
<div>
<label for="new-password">新密码:</label>
<input type="password" id="new-password" required>
<span id="new-password-error" style="color: red;"></span>
</div>
<div>
<label for="confirm-password">确认密码:</label>
<input type="password" id="confirm-password" required>
<span id="confirm-password-error" style="color: red;"></span>
</div>
<button type="submit">提交</button>
</form>
<script>
const passwordForm = document.querySelector('#password-form');
const oldPasswordInput = document.querySelector('#old-password');
const oldPasswordError = document.querySelector('#old-password-error');
const newPasswordInput = document.querySelector('#new-password');
const newPasswordError = document.querySelector('#new-password-error');
const confirmPasswordInput = document.querySelector('#confirm-password');
const confirmPasswordError = document.querySelector('#confirm-password-error');
passwordForm.addEventListener('submit', (event) => {
event.preventDefault();
const oldPassword = oldPasswordInput.value;
const newPassword = newPasswordInput.value;
const confirmPassword = confirmPasswordInput.value;
// 检查旧密码长度
if (oldPassword.length < 6 || oldPassword.length > 12) {
oldPasswordError.textContent = '密码长度有误';
} else {
oldPasswordError.textContent = '';
}
// 检查新密码和确认密码是否一致
if (newPassword !== confirmPassword) {
confirmPasswordError.textContent = '密码不一致';
} else {
confirmPasswordError.textContent = '';
}
// 检查新密码是否包含数字、字母和特殊符号
if (!/\d/.test(newPassword) || !/[a-zA-Z]/.test(newPassword) || !/[^a-zA-Z0-9]/.test(newPassword)) {
newPasswordError.textContent = '密码必须包括数字、字母和特殊符号';
} else {
newPasswordError.textContent = '';
}
if (oldPasswordError.textContent === '' && confirmPasswordError.textContent === '' && newPasswordError.textContent === '') {
console.log('旧密码:', oldPassword);
console.log('新密码:', newPassword);
console.log('确认密码:', confirmPassword);
passwordForm.reset();
}
});
</script>
</body>
</html>
```
在表单提交事件处理函数中,我们先从输入框中获取旧密码、新密码和确认密码的值,然后分别完成三种检查。如果某种检查不通过,则在对应的错误提示元素中显示错误信息;否则清空错误信息。
最后,如果三种检查都通过,则在控制台中显示旧密码、新密码和确认密码,并重置表单。
阅读全文