-开发一个美观大方的修改密码表单界面,包含3个表单项:旧密码、新密码和确认密码,监听表单提交事件,当表单提交时完成如下3种检查 1.要求输入的旧密码字符个数必须大于6个字符小于12个字符,否则在旧密码输入框的后面以红色字体提示“旧密码长度有误”;2.要求输入的新密码和确认密码相同,否则在确认密码的下面以红色字体显示“新密码与确认密码不一致”; 3.新密码里必须包含数字、字母和特殊符号,否则在新密码输入框后面提示“必须包含数字、字母。
时间: 2024-02-11 20:08:29 浏览: 63
以下是一个基本的示例代码实现一个修改密码表单,包含3个表单项(旧密码、新密码和确认密码)以及表单提交事件的检查:
```html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>修改密码</title>
<style>
label {
display: block;
margin-bottom: 10px;
}
input[type="password"] {
width: 200px;
padding: 5px;
border-radius: 5px;
border: 1px solid #ccc;
}
.error {
color: red;
font-size: 14px;
margin-top: 5px;
}
</style>
</head>
<body>
<form id="change-password-form" action="#" method="post">
<label for="old-password">旧密码:</label>
<input type="password" id="old-password" name="old-password">
<label for="new-password">新密码:</label>
<input type="password" id="new-password" name="new-password">
<label for="confirm-password">确认密码:</label>
<input type="password" id="confirm-password" name="confirm-password">
<button type="submit">提交</button>
</form>
<script>
const form = document.querySelector('#change-password-form');
const oldPasswordInput = document.querySelector('#old-password');
const newPasswordInput = document.querySelector('#new-password');
const confirmPasswordInput = document.querySelector('#confirm-password');
form.addEventListener('submit', function(event) {
event.preventDefault();
// 检查旧密码长度
if (oldPasswordInput.value.length < 6 || oldPasswordInput.value.length > 12) {
oldPasswordInput.insertAdjacentHTML('afterend', '<div class="error">旧密码长度有误</div>');
return;
}
// 检查新密码和确认密码是否相同
if (newPasswordInput.value !== confirmPasswordInput.value) {
confirmPasswordInput.insertAdjacentHTML('afterend', '<div class="error">新密码与确认密码不一致</div>');
return;
}
// 检查新密码是否包含数字、字母和特殊符号
const passwordRegex = /^(?=.*[A-Za-z])(?=.*\d)(?=.*[@$!%*#?&])[A-Za-z\d@$!%*#?&]{6,}$/;
if (!passwordRegex.test(newPasswordInput.value)) {
newPasswordInput.insertAdjacentHTML('afterend', '<div class="error">必须包含数字、字母和特殊符号</div>');
return;
}
// 如果表单检查通过,可以在此处提交表单数据
console.log('表单数据已提交');
});
</script>
</body>
</html>
```
在上面的代码中,我们使用了 HTML 和 CSS 实现了一个简单的修改密码表单界面,包含3个表单项(旧密码、新密码和确认密码)和一个提交按钮。在 JavaScript 部分,我们首先通过 `document.querySelector` 方法获取到表单和各个表单项的元素,然后使用 `addEventListener` 方法监听表单的 `submit` 事件。在事件处理函数中,我们按照题目要求完成了3种检查:
1. 检查旧密码长度:使用 `oldPasswordInput.value.length` 获取旧密码输入框中的字符个数,并使用 `insertAdjacentHTML` 方法在输入框后面添加一个红色字体的提示文本。
2. 检查新密码和确认密码是否相同:使用 `newPasswordInput.value` 和 `confirmPasswordInput.value` 获取新密码和确认密码输入框中的值,并使用 `insertAdjacentHTML` 方法在确认密码输入框下面添加一个红色字体的提示文本。
3. 检查新密码是否包含数字、字母和特殊符号:使用正则表达式 `/(?=.*[A-Za-z])(?=.*\d)(?=.*[@$!%*#?&])[A-Za-z\d@$!%*#?&]{6,}/` 匹配新密码是否包含字母、数字和特殊符号,并使用 `insertAdjacentHTML` 方法在新密码输入框后面添加一个红色字体的提示文本。
最后,如果表单检查通过,我们可以在事件处理函数的最后提交表单数据。
阅读全文