创建一个有用户名,密码,确认密码,及注册按钮的表单,输入用户名后如果用户名已存在则在右侧span标签提示红色的"用户名已存在"(假设用户名为"zs"为已存在) ;如果点击用户名后, 没有输入,继续输入密码,则在右侧提示红色的"用户名不能为空" ;如果输入非"zs", js中校验正确,则失去焦点后,右侧提示绿色的"恭喜可用"
时间: 2023-07-19 10:21:28 浏览: 167
好的,以下是针对你的要求实现的代码示例:
```
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>表单验证示例</title>
<style>
form {
display: flex;
flex-direction: column;
align-items: center;
}
input {
margin: 10px 0;
padding: 5px;
}
span {
margin-left: 10px;
font-weight: bold;
}
.error {
color: red;
}
.success {
color: green;
}
</style>
</head>
<body>
<form>
<label for="username">用户名:</label>
<input type="text" id="username" name="username">
<span id="username-msg"></span>
<label for="password">密码:</label>
<input type="password" id="password" name="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('form');
const usernameInput = document.querySelector('#username');
const passwordInput = document.querySelector('#password');
const confirmPasswordInput = document.querySelector('#confirm-password');
const usernameMsg = document.querySelector('#username-msg');
// 定义已存在的用户名
const existingUsername = 'zs';
// 验证用户名是否可用
function validateUsername() {
const username = usernameInput.value.trim();
if (username === '') {
// 用户名为空
usernameMsg.textContent = '用户名不能为空';
usernameMsg.classList.add('error');
} else if (username === existingUsername) {
// 用户名已存在
usernameMsg.textContent = '用户名已存在';
usernameMsg.classList.add('error');
} else {
// 用户名可用
usernameMsg.textContent = '恭喜可用';
usernameMsg.classList.add('success');
}
}
// 监听用户名输入框的失去焦点事件
usernameInput.addEventListener('blur', validateUsername);
// 监听表单的提交事件
form.addEventListener('submit', function(event) {
event.preventDefault(); // 阻止表单提交
// 验证密码是否一致
const password = passwordInput.value.trim();
const confirmPassword = confirmPasswordInput.value.trim();
if (password !== confirmPassword) {
alert('密码不一致,请重新输入!');
passwordInput.value = '';
confirmPasswordInput.value = '';
passwordInput.focus();
return;
}
// 提交表单
alert('注册成功!');
});
</script>
</body>
</html>
```
如果你在输入用户名时输入的是 "zs",则右侧会提示红色的 "用户名已存在"。如果你输入的是空字符串,则右侧会提示红色的 "用户名不能为空"。如果你输入的是除 "zs" 以外的其他用户名,则右侧会提示绿色的 "恭喜可用"。当你提交表单时,如果密码不一致,则会弹出提示框提示你重新输入。否则,会弹出提示框提示你注册成功。
阅读全文