templates/guest/index.html.twig line 1
{% extends 'base.html.twig' %}{% block title %}Registro PBA - Fundación MAPFRE{% endblock %}{% block javascripts %}<script src="https://www.google.com/recaptcha/api.js?render={{ site_key }}"></script>{% endblock %}{% block body %}<div class="publicHeader"><h1>Regístrate</h1><h3>Para poder solicitar las ayudas de Fundación MAPFRE debes registrarte a través del siguiente formulario:</h3>{# <p><div class="formError">{{ form_errors(guest_form.document_number) }}</div></p> #}</div><div class="formRegistro">{{ form_start(guest_form) }}<div class="row"><div class="col-md-6">{{ form_row(guest_form.name, {'attr': {'tabindex': '1'}}) }}{{ form_row(guest_form.document_type, {'attr': {'tabindex': '3'}}) }}</div><div class="col-md-6">{{ form_row(guest_form.surname, {'attr': {'tabindex': '2'}}) }}{{ form_label(guest_form.document_number) }}{{ form_widget(guest_form.document_number, {'attr': {'tabindex': '4'}}) }}<div id="documentError" class="formError alert alert-danger mt-1" style="display: none;">{{ form_errors(guest_form.document_number) }}</div></div></div><div class="row"><div class="col-md-12">{{ form_row(guest_form.email) }}<label for="guest_form_email_confirm">Repetir correo electrónico*</label><input type="text" id="guest_form_email_confirm" required="required" maxlength="255"><div id="emailError" class="alert alert-danger mt-3" style="display: none;">Los correos electrónicos deben coincidir.</div><p class="m-3 ms-0">* Campos obligatorios</p><p>Fundación MAPFRE como responsable del tratamiento utilizará sus datos para la gestión y envío de nuestra revista digital, así como el envío de proyectos sociales que apoyamos, exposiciones y eventos que organizamos, o información de Fundación MAPFRE, envíos que podrán realizarse por medios electrónicos, para lo que podríamos necesitar realizar comunicaciones a terceros por obligación legal y podrán realizarse transferencias de datos a terceros países en los términos señalados en la Política de Privacidad. </p><br><p>La persona interesada garantiza la exactitud y veracidad de los datos personales facilitados. En caso de que los datos se refieran a terceras personas distintas del interesado/a, garantiza haber informado y recabado el consentimiento con carácter previo a la inclusión de los datos en el presente formulario. </p><br><p>Podrá ejercitar, en cualquier momento, sus derechos de acceso, rectificación, supresión, limitación, oposición o portabilidad tal y como se indica en el <a href={{ href_p }}> tratamiento de datos personales</a>.</p><span class="politica"><input type="checkbox" name="aceptar" id="aceptar" value="aceptar" required><label for="aceptar">Acepto el <a href={{ href_checkbox }}>Tratamiento de datos personales</a>.</label></span>{{ form_row(guest_form.Enviar) }}</div></div><input type="hidden" id="{{ guest_form._token.vars.id }}" name="{{ guest_form._token.vars.full_name }}" value="{{ guest_form._token.vars.value }}"><div class="row"><div class="col-md-12">{{ form_end(guest_form, {'render_rest': false}) }}</div></div></div>{% endblock %}{% block extra_js %}const email = document.querySelector('#guest_form_email');const emailConfirm = document.querySelector('#guest_form_email_confirm');const emailError = document.querySelector('#emailError');const submitButton = document.querySelector('#guest_form_Enviar');const documentNumber = document.querySelector('#guest_form_document_number');var documentError = document.getElementById('documentError');const form = document.querySelector('form[name="guest_form"]');form.addEventListener('input', lockUnlockSubmitButton);emailConfirm.addEventListener('paste', function(e) {e.preventDefault();return false;});let emailValidationTimeoutId = null;function checkEmails() {if (emailValidationTimeoutId !== null) {clearTimeout(emailValidationTimeoutId); // Limpia el temporizador anterior}emailValidationTimeoutId = setTimeout(function() {if (emailConfirm.value !== '') { // Solo valida si hay algo en el campo de confirmaciónif (email.value !== emailConfirm.value) {emailError.style.display = 'block';submitButton.disabled = true;} else {emailError.style.display = 'none';submitButton.disabled = false;}}emailValidationTimeoutId = null; // Restablece el temporizador}, 1000);}email.addEventListener('input', checkEmails);emailConfirm.addEventListener('input', checkEmails);document.getElementById('guest_form_document_type').addEventListener('focus', function() {this.size = this.options.length;});document.getElementById('guest_form_document_type').addEventListener('blur', function() {this.size = 0;});document.getElementById('guest_form_document_type').addEventListener('change', function() {documentError.style.display = 'none';});function lockUnlockSubmitButton() {var name = document.getElementById('guest_form_name').value;var surname = document.getElementById('guest_form_surname').value;var email = document.getElementById('guest_form_email').value;var emailConfirm = document.getElementById('guest_form_email_confirm').value;if (documentError.style.display === 'none' && emailError.style.display === 'none' && name !== '' && surname !== '' && email !== '' && emailConfirm !== '') {submitButton.disabled = false;} else {submitButton.disabled = true;}}function validateDocumentNumber() {var value = documentNumber.value.trim();if (value.length === 9 && !isValidDniNie(value)) { // Solo valida si hay 9 caracteresdocumentError.style.display = 'block';} else {documentError.style.display = 'none';}}function validateDocumentNumberOnLoad() {var value = documentNumber.value.trim();if (documentError.innerHTML !== "" && value.length > 0 || !isValidDniNie(value)) { // Valida si hay algún carácterdocumentError.style.display = 'block';submitButton.disabled = true;} else {documentError.style.display = 'none';submitButton.disabled = false;}}documentNumber.addEventListener('input', validateDocumentNumber);// Validación inmediata al cargar la página si hay contenido en el campoif (documentNumber.value.trim() !== "") {validateDocumentNumberOnLoad();}function isValidDniNie(value) {var dniPattern = /^\d{8}[A-Za-z]$/;if (dniPattern.test(value)) {var letters = "TRWAGMYFPDXBNJZSQVHLCKET";var number = parseInt(value.substring(0, 8), 10);var letter = value.charAt(8).toUpperCase();return letter === letters.charAt(number % 23);}var niePattern = /^[XYZ]\d{7}[A-Za-z]$/;if (niePattern.test(value)) {var number = value.replace('X', '0').replace('Y', '1').replace('Z', '2').substring(0, 8);var letter = value.charAt(8).toUpperCase();return letter === "TRWAGMYFPDXBNJZSQVHLCKET".charAt(number % 23);}return false;}document.addEventListener('DOMContentLoaded', function() {grecaptcha.ready(function() {grecaptcha.execute('{{ site_key }}', {action: 'formulario'}).then(function(token) {// Añade un campo oculto con el token al formulariovar form = document.querySelector('form[name="guest_form"]');if (form) {var input = document.createElement('input');input.type = 'hidden';input.name = 'g-recaptcha-response';input.value = token;form.appendChild(input);} else {console.error('Formulario no encontrado');}});});});{% endblock %}