122 lines
4.3 KiB
JavaScript
122 lines
4.3 KiB
JavaScript
const formulario = document.getElementById("formulario-datos-basicos");
|
|
const notificacion = document.getElementById("mensaje-error");
|
|
|
|
// Función para validar el nombre
|
|
function validarNombre(nombre) {
|
|
const nombreRegex = /^[a-zA-ZÀ-ÿ\s]+$/; // Permite letras y espacios
|
|
return nombreRegex.test(nombre);
|
|
}
|
|
|
|
//funcion para validar apellido
|
|
function validarApellido(apellido) {
|
|
const apellidoRegex = /^[a-zA-ZÀ-ÿ]+$/; // Permite solo letras, sin espacios
|
|
return apellidoRegex.test(apellido);
|
|
}
|
|
|
|
// Función para validar número telefónico (10 dígitos)
|
|
function validarTelefono(telefono) {
|
|
const telefonoRegex = /^\d{10}$/;
|
|
return telefonoRegex.test(telefono);
|
|
}
|
|
|
|
// Función para validar correo electrónico
|
|
function validarCorreo(correo) {
|
|
const correoRegex = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/;
|
|
return correoRegex.test(correo);
|
|
}
|
|
|
|
formulario.addEventListener("submit", async(event) => {
|
|
event.preventDefault();
|
|
|
|
// Limpiar mensaje de error previo
|
|
notificacion.textContent = "";
|
|
notificacion.style.display = "none";
|
|
|
|
// Obtener valores de los campos
|
|
const idCandidato = document.getElementById('id_candidato').value;
|
|
const fechaEntrada = document.getElementById('fecha_entrada').value;
|
|
const fechaSalida = document.getElementById('fecha_salida').value;
|
|
|
|
const nombres = document.getElementById('nombres').value.trim();
|
|
const primerApellido = document.getElementById('primer_apellido').value.trim();
|
|
const segundoApellido = document.getElementById('segundo_apellido').value.trim();
|
|
const correo = document.getElementById('correo').value.trim();
|
|
const telefono = document.getElementById('telefono').value.trim();
|
|
|
|
const idExamen = document.getElementById('id_examen').value;
|
|
const idTipoId = document.getElementById('id_tipo_id').value;
|
|
const idRangoEdad = document.getElementById('id_rango_edad').value;
|
|
const idGenero = document.getElementById('id_genero').value;
|
|
|
|
// Validaciones
|
|
let errores = [];
|
|
|
|
// Validar correo electrónico
|
|
if (!validarCorreo(correo)) {
|
|
errores.push("El correo electrónico no es válido. ");
|
|
}
|
|
|
|
// validar nombre
|
|
if (!validarNombre(nombres)) {
|
|
errores.push("El nombre no tiene un formato válido. ");
|
|
}
|
|
|
|
// validar apellido
|
|
if (!validarApellido(primerApellido)) {
|
|
errores.push("El primer apellido no tiene un formato válido. ");
|
|
}
|
|
|
|
if (!validarApellido(segundoApellido)) {
|
|
errores.push("El segundo apellido no tiene un formato válido. ");
|
|
}
|
|
|
|
// Validar número telefónico
|
|
if (!validarTelefono(telefono)) {
|
|
errores.push("El número telefónico debe ser un número de 10 dígitos. ");
|
|
}
|
|
|
|
// Si hay errores, mostrarlos y detener el envío
|
|
if (errores.length > 0) {
|
|
notificacion.textContent = errores.join("\n");
|
|
notificacion.style.display = "block";
|
|
return;
|
|
}
|
|
|
|
// Preparar datos para envío
|
|
const formData = new FormData();
|
|
//formData.append("id_candidato", idCandidato);
|
|
//formData.append("fecha_entrada", fechaEntrada);
|
|
//formData.append("fecha_salida", fechaSalida);
|
|
formData.append("nombres", nombres);
|
|
formData.append("primer_apellido", primerApellido);
|
|
formData.append("segundo_apellido", segundoApellido);
|
|
formData.append("correo", correo);
|
|
formData.append("telefono", telefono);
|
|
formData.append("id_examen", idExamen);
|
|
formData.append("id_tipo_id", idTipoId);
|
|
formData.append("id_rango_edad", idRangoEdad);
|
|
formData.append("id_genero", idGenero);
|
|
|
|
// Enviar petición POST para registrar candidato
|
|
try {
|
|
const respuesta = await fetch('controllers/registrarCandidato.php', {
|
|
method: "POST",
|
|
body: formData,
|
|
});
|
|
|
|
// Obtener respuesta de petición de registro
|
|
const resultado = await respuesta.json();
|
|
|
|
// Verificar si el registro fue exitoso
|
|
if (resultado.registroExitoso) {
|
|
alert('Se guardó la información correctamente');
|
|
window.location.href = 'inicio.html';
|
|
} else {
|
|
notificacion.textContent = resultado.message;
|
|
notificacion.style.display = "block";
|
|
}
|
|
} catch (error) {
|
|
notificacion.textContent = "Lo sentimos, ocurrió un error: " + error.message;
|
|
notificacion.style.display = "block";
|
|
}
|
|
}); |