开发一个修改密码表单界面,包含旧密码新密码和确认密码三个表单项,监听表单提交事件,当表单提交完成如下三种检查:1.要求输入的旧密码字符个数必须大于6个字符小于12个字符,否则在旧密码输入框后面以红色字体提示"旧密码长度有误";2.要求输入的新密码和确认密码相同,否则在确认密码下面以红色字体显示"新密码与确认密码不一致";3.新密码里必须包含数字、字母和特殊符号,否则在新密码输入框后面提示"必须包含数字、字母和特殊字符"
时间: 2024-01-22 22:17:54 浏览: 111
可以使用HTML和JavaScript来实现这个修改密码表单界面。
HTML代码:
```html
<form id="password-form">
<label for="old-password">旧密码:</label>
<input type="password" id="old-password" name="old-password"><br>
<span id="old-password-error" style="color: red;"></span><br>
<label for="new-password">新密码:</label>
<input type="password" id="new-password" name="new-password"><br>
<label for="confirm-password">确认密码:</label>
<input type="password" id="confirm-password" name="confirm-password"><br>
<span id="confirm-password-error" style="color: red;"></span><br>
<input type="submit" value="修改密码">
</form>
```
在这个表单中,我们使用了`input`元素的`type="password"`属性,这样输入的密码字符将会被隐藏。我们还使用了`span`元素来显示错误提示。
JavaScript代码:
```javascript
const passwordForm = document.getElementById('password-form');
const oldPasswordInput = document.getElementById('old-password');
const oldPasswordError = document.getElementById('old-password-error');
const newPasswordInput = document.getElementById('new-password');
const confirmPasswordInput = document.getElementById('confirm-password');
const confirmPasswordError = document.getElementById('confirm-password-error');
passwordForm.addEventListener('submit', function(event) {
event.preventDefault();
const oldPassword = oldPasswordInput.value;
const newPassword = newPasswordInput.value;
const confirmPassword = confirmPasswordInput.value;
// 检查旧密码长度
if (oldPassword.length < 6 || oldPassword.length > 12) {
oldPasswordError.textContent = '旧密码长度有误';
return;
} else {
oldPasswordError.textContent = '';
}
// 检查新密码和确认密码是否一致
if (newPassword !== confirmPassword) {
confirmPasswordError.textContent = '新密码与确认密码不一致';
return;
} else {
confirmPasswordError.textContent = '';
}
// 检查新密码是否包含数字、字母和特殊符号
const hasNumber = /\d/.test(newPassword);
const hasLetter = /[a-zA-Z]/.test(newPassword);
const hasSpecial = /[^a-zA-Z0-9]/.test(newPassword);
if (!hasNumber || !hasLetter || !hasSpecial) {
newPasswordInput.setCustomValidity('必须包含数字、字母和特殊字符');
newPasswordInput.reportValidity();
return;
} else {
newPasswordInput.setCustomValidity('');
}
// 如果通过所有检查,提交表单
passwordForm.submit();
});
```
这段代码使用`addEventListener`方法给表单添加了一个`submit`事件监听器。当用户点击提交按钮时,这个事件监听器会执行一些检查。如果检查没有通过,它将会阻止表单的默认提交行为,并显示错误提示。如果检查通过,它将允许表单提交。
阅读全文