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