Integración de la función de verificación de correo electrónico Java Script / AJAX

Tengo un formulario con funciones JS para verificar los campos vacíos y enviar el formulario sin actualizar toda la página. Estoy buscando una forma de integrar la función de verificación de correo electrónico en lo que tengo ahora:

$(function() {
  $('.error').hide();
  $('input.text-input').css({backgroundColor:"#EBEBEB"});
  $('input.text-input').focus(function(){
    $(this).css({backgroundColor:"#EBEBEB"});
  });
  $('input.text-input').blur(function(){
    $(this).css({backgroundColor:"#EBEBEB"});
  });

  $(".button").click(function() {
        // validate and process form
        // first hide any error messages
    $('.error').hide();
        }

      var name = $("input#name").val();
        if (name == "") {
      $("label#name_error").show();
      $("input#name").focus();
      return false;
    }
        var email = $("input#email").val();
        if (email == "") {
      $("label#email_error").show();
      $("input#email").focus();
      return false;
    }
        var phone = $("textarea#phone").val();
        if (phone == "") {
      $("label#phone_error").show();
      $("textarea#phone").focus();
      return false;
    }

        var dataString = 'name='+ name + '&email=' + email + '&phone=' + phone;
        //alert (dataString);return false;

        $.ajax({
      type: "POST",
      url: "process.php",
      data: dataString,
      success: function() {
        $('#contact_form').html("<div id='message'></div>");
        $('#message').html("<h2>Email sent</h2>")
        .hide()
        .fadeIn(1000, function() {
          $('#message').append("<img id='checkmark' src='images/check.png' />");
        });
      }
     });
    return false;
    });
});
runOnLoad(function(){
  $("input#name").select().focus();
});

Gracias por ayudar.

preguntado el 04 de julio de 12 a las 08:07

¿Qué es la "función de verificación de correo electrónico" a la que te refieres? Su solicitud no está clara -

1 Respuestas

Para consultar un correo electrónico, puede utilizar:

var emailReg = /^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i

function isEmail(email) {
  return emailReg.test(email);
}
//call isEmail wherever you need it

Si puedo comentar más sobre su código, le recomendaría que guarde en caché sus selectores y los reutilice:

var input = $('input.text-input');
input.css({backgroundColor:"#EBEBEB"}).focus(function() //... and so on

Además, si su DOM está estructurado correctamente, no tiene que llamar a sus ID con selectores de entrada, solo ralentiza su implementación porque itera sobre cada entrada en el DOM en lugar de obtenerla directamente. Eso significa:

$("label#phone_error") // don't do this
$("#phone_error") // do this

Además, puede usar un objeto de datos para pasar a jquery, por lo que en lugar de

var dataString = 'name='+ name + '&email=' + email + '&phone=' + phone;

Hacer esto:

$.ajax(yoururl, {data: 
  {
    name: name,
    email: email,
    phone: phone
  }, // and so on

Respondido 04 Jul 12, 08:07

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.