app.js 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. function showRegisterModal() {
  2. document.getElementById('registerModal').classList.remove('hidden');
  3. }
  4. function hideRegisterModal() {
  5. document.getElementById('registerModal').classList.add('hidden');
  6. }
  7. // Formateo automático del RUT mientras se escribe
  8. document.getElementById('rutInput').addEventListener('input', function(e) {
  9. let rut = e.target.value.replace(/[^0-9kK]/g, '');
  10. if (rut.length > 1) {
  11. let body = rut.slice(0, -1);
  12. let dv = rut.slice(-1);
  13. if (body.length > 0) {
  14. // Agregar puntos cada 3 dígitos desde la derecha
  15. body = body.replace(/\B(?=(\d{3})+(?!\d))/g, '.');
  16. rut = body + '-' + dv;
  17. }
  18. }
  19. e.target.value = rut;
  20. });
  21. // Manejo del envío del formulario
  22. document.getElementById('registerForm').addEventListener('submit', function(e) {
  23. e.preventDefault();
  24. const formData = new FormData(e.target);
  25. const data = {
  26. name: formData.get('name'),
  27. email: formData.get('email'),
  28. rut: formData.get('rut')
  29. };
  30. console.log('Datos del formulario:', data);
  31. fetch('/api/users/register', {
  32. method: 'POST',
  33. headers: {
  34. 'Content-Type': 'application/json'
  35. },
  36. body: JSON.stringify(data)
  37. })
  38. .then(response => {
  39. if (!response.ok) {
  40. return response.json().then(errorData => {
  41. throw new Error(errorData.message || 'Error al registrar el usuario.');
  42. });
  43. }
  44. return response.json();
  45. })
  46. .then(data => {
  47. console.log('Registro exitoso:', data);
  48. alert('Registro exitoso! Revisa tu correo electrónico para el PIN.');
  49. hideRegisterModal();
  50. })
  51. });
  52. document.addEventListener('DOMContentLoaded', function() {
  53. showRegisterModal();
  54. });