Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

185
Vistas
El atributo requerido de HTML5 no funciona con el envío de AJAX

Estoy tratando de hacer una validación básica para un formulario de boletín informativo simple que solo requiere un correo electrónico. De la forma en que tengo este formulario/entrada dentro de la página, realmente no hay espacio para agregar ningún mensaje de error de validación de jQuery, por lo que estaba tratando de agregar un atributo requerido de HTML 5 simple, pero el formulario se envía independientemente de si está en blanco.

¿Cuál sería la mejor manera de agregar una validación simple a esto para que el formulario verifique una dirección de correo electrónico, se complete y tenga una longitud mínima de 4 caracteres?

 <form action="" method="POST" id="newsletter-form"> <input type="email" id="footer-grid1-newsletter-input" placeholder="Your Email Address" required> <input type="submit" id="footer-grid1-newsletter-submit" name="submit" value='&nbsp'> </form>
 $("#footer-grid1-newsletter-submit").on("click", function (event) { event.preventDefault(); var newsletter_email = $("#footer-grid1-newsletter-input").val(); var targeted_popup_class = jQuery(this).attr('data-popup-open'); $.ajax({ url: "newsletterSend.php", type: "POST", data: { "newsletter_email": newsletter_email }, success: function (data) { // console.log(data); // data object will return the response when status code is 200 if (data == "Error!") { alert("Unable to insert email!"); alert(data); } else { $("#newsletter-form")[0].reset(); $('.newsletter-popup').fadeIn(350).delay(2000).fadeOut(); } }, error: function (xhr, textStatus, errorThrown) { alert(textStatus + " | " + errorThrown); //console.log("error"); //otherwise error if status code is other than 200. } }); });

ingrese la descripción de la imagen aquí

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

El motivo es que la validación se realiza en el evento de submit del formulario, pero ha conectado su evento al clic del botón de envío. Prueba esto:

 $("#newsletter-form").on("submit", function (event) { event.preventDefault(); // your code... });

ejemplo de trabajo

Con respecto a la validación de una longitud de entrada mínima, puede usar el atributo de pattern :

 <input type="email" id="footer-grid1-newsletter-input" placeholder="Your Email Address" pattern=".{3,}" required>
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda