现有一注册页面(表单),提交时要求所有的内容必输,原密码输入离开后,会校验,如果和自己的姓名拼音不一致,提示“原密码错”,光标定位在原密码输入框。原密码正确后,二次输入新密码,若二次新密码不一致,会提示“二次密码不一致”,光标定准在第一次密码输入框中。javaScript和html
时间: 2024-02-25 15:54:45 浏览: 25
好的,下面是一个简单的 HTML 和 JavaScript 实现:
```html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>注册页面</title>
</head>
<body>
<form id="register-form">
<label for="name">姓名:</label>
<input type="text" id="name" name="name"><br>
<label for="original-pwd">原密码:</label>
<input type="password" id="original-pwd" name="original-pwd"><br>
<label for="new-pwd">新密码:</label>
<input type="password" id="new-pwd" name="new-pwd"><br>
<label for="confirm-pwd">确认密码:</label>
<input type="password" id="confirm-pwd" name="confirm-pwd"><br>
<input type="submit" value="提交">
</form>
<script>
// 获取表单元素
const form = document.querySelector('#register-form');
const nameInput = document.querySelector('#name');
const originalPwdInput = document.querySelector('#original-pwd');
const newPwdInput = document.querySelector('#new-pwd');
const confirmPwdInput = document.querySelector('#confirm-pwd');
// 绑定表单提交事件
form.addEventListener('submit', function(event) {
// 阻止表单默认提交行为
event.preventDefault();
// 校验所有的表单字段是否填写
if (nameInput.value.trim() === '' || originalPwdInput.value.trim() === '' || newPwdInput.value.trim() === '' || confirmPwdInput.value.trim() === '') {
alert('请填写所有的表单字段');
return;
}
// 校验原密码是否正确
if (originalPwdInput.value.trim() !== getPinyin(nameInput.value.trim())) {
alert('原密码错误');
originalPwdInput.focus();
return;
}
// 校验两次输入的密码是否一致
if (newPwdInput.value.trim() !== confirmPwdInput.value.trim()) {
alert('两次输入的密码不一致');
newPwdInput.focus();
return;
}
// 提交表单
form.submit();
});
// 获取姓名的拼音
function getPinyin(name) {
// 这里可以调用你的获取拼音的函数
// 比如:return pinyin(name);
}
</script>
</body>
</html>
```
在代码中,我们首先创建了一个包含所有表单字段的表单,并在每个表单字段后面添加了一个 `<label>` 元素,以便于用户识别。接着,我们使用 JavaScript 获取了表单元素和各个表单字段的输入框元素。然后,我们绑定了表单提交事件,并在事件处理函数中实现了所有的表单校验逻辑。最后,我们在 `<head>` 和 `<body>` 标签中分别添加了对应的内容。