92 lines
3.1 KiB
JavaScript
92 lines
3.1 KiB
JavaScript
// 用户编辑页面交互
|
|
document.addEventListener('DOMContentLoaded', function() {
|
|
const passwordField = document.getElementById('password');
|
|
const confirmPasswordGroup = document.getElementById('confirmPasswordGroup');
|
|
const confirmPasswordField = document.getElementById('confirm_password');
|
|
const userEditForm = document.getElementById('userEditForm');
|
|
|
|
// 如果输入密码,显示确认密码字段
|
|
passwordField.addEventListener('input', function() {
|
|
if (this.value.trim() !== '') {
|
|
confirmPasswordGroup.style.display = 'block';
|
|
} else {
|
|
confirmPasswordGroup.style.display = 'none';
|
|
confirmPasswordField.value = '';
|
|
}
|
|
});
|
|
|
|
// 表单提交验证
|
|
userEditForm.addEventListener('submit', function(event) {
|
|
let valid = true;
|
|
|
|
// 清除之前的错误提示
|
|
const invalidFields = document.querySelectorAll('.is-invalid');
|
|
const feedbackElements = document.querySelectorAll('.invalid-feedback');
|
|
|
|
invalidFields.forEach(field => {
|
|
field.classList.remove('is-invalid');
|
|
});
|
|
|
|
feedbackElements.forEach(element => {
|
|
element.parentNode.removeChild(element);
|
|
});
|
|
|
|
// 邮箱格式验证
|
|
const emailField = document.getElementById('email');
|
|
if (emailField.value.trim() !== '') {
|
|
const emailPattern = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
|
|
if (!emailPattern.test(emailField.value.trim())) {
|
|
showError(emailField, '请输入有效的邮箱地址');
|
|
valid = false;
|
|
}
|
|
}
|
|
|
|
// 手机号码格式验证
|
|
const phoneField = document.getElementById('phone');
|
|
if (phoneField.value.trim() !== '') {
|
|
const phonePattern = /^1[3456789]\d{9}$/;
|
|
if (!phonePattern.test(phoneField.value.trim())) {
|
|
showError(phoneField, '请输入有效的手机号码');
|
|
valid = false;
|
|
}
|
|
}
|
|
|
|
// 密码验证
|
|
if (passwordField.value.trim() !== '') {
|
|
if (passwordField.value.length < 6) {
|
|
showError(passwordField, '密码长度至少为6个字符');
|
|
valid = false;
|
|
}
|
|
|
|
if (passwordField.value !== confirmPasswordField.value) {
|
|
showError(confirmPasswordField, '两次输入的密码不一致');
|
|
valid = false;
|
|
}
|
|
}
|
|
|
|
if (!valid) {
|
|
event.preventDefault();
|
|
}
|
|
});
|
|
|
|
// 显示表单字段错误
|
|
function showError(field, message) {
|
|
field.classList.add('is-invalid');
|
|
|
|
const feedback = document.createElement('div');
|
|
feedback.className = 'invalid-feedback';
|
|
feedback.innerText = message;
|
|
|
|
field.parentNode.appendChild(feedback);
|
|
}
|
|
|
|
// 处理表单提交后的成功反馈
|
|
const successAlert = document.querySelector('.alert-success');
|
|
if (successAlert) {
|
|
// 如果有成功消息,显示成功对话框
|
|
setTimeout(() => {
|
|
$('#successModal').modal('show');
|
|
}, 500);
|
|
}
|
|
});
|