LANIA_Proyecto/js/form_datos_basicos.js

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";
}
});