Foros del Web » Programando para Internet » Javascript »

Como inboco a esta funcion despues del la validacion?

Estas en el tema de Como inboco a esta funcion despues del la validacion? en el foro de Javascript en Foros del Web. Hola tengo una duda, ya probe la funcion enviarMail() y me funciona bien, pero agregue una validacion de datos y estoy tratando de llamar a ...
  #1 (permalink)  
Antiguo 14/11/2010, 20:31
Avatar de tampon  
Fecha de Ingreso: julio-2009
Mensajes: 420
Antigüedad: 14 años, 9 meses
Puntos: 0
Pregunta Como inboco a esta funcion despues del la validacion?

Hola tengo una duda, ya probe la funcion enviarMail() y me funciona bien, pero agregue una validacion de datos y estoy tratando de llamar a la funcion despues de que las validaciones resulten correctas, pero no me esta saliendo bien, necesito un poco de ayuda para que se ejecute bien el codigo:


Código Javascript:
Ver original
  1. function nuevoAjax(){
  2. var xmlhttp=false;
  3.  try {
  4.   xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
  5.  } catch (e) {
  6.   try {
  7.    xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
  8.   } catch (E) {
  9.    xmlhttp = false;
  10.   }
  11.  }
  12.  
  13. if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
  14.   xmlhttp = new XMLHttpRequest();
  15. }
  16. return xmlhttp;
  17. }
  18.  
  19. function borrarCampos(){
  20.     document.enviar_email.reset();
  21. }
  22.  
  23. function enviarMail(){
  24.     c = document.getElementById('div-mensaje');
  25.    
  26.     emis=document.enviar_email.author.value;
  27.     mail=document.enviar_email.email.value;
  28.     url=document.enviar_email.url.value;
  29.     cues=document.enviar_email.cuestion.value;
  30.     mens=document.enviar_email.comment.value;
  31.    
  32.     ajax=nuevoAjax();
  33.     //c.innerHTML = '<p style="text-align:center;"><img src="img/load.gif"/></p>';
  34.     ajax.open("POST", "php/envia_mail.php",true);
  35.     ajax.onreadystatechange=function() {
  36.         if (ajax.readyState==4) {
  37.             c.innerHTML = ajax.responseText
  38.         }
  39.         borrarCampos()
  40.     }
  41.     ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
  42.     ajax.send("author="+emis+"&email="+mail+"&url="+url+"&cuestion="+cues+"&mensaje="+mens)
  43. }
  44.  
  45. function validar(formulario) {
  46.  
  47. var remitente = document.getElementById("author").value;
  48. var email = document.getElementById("email").value;
  49. var web = document.getElementById("url").value;
  50. var asunto = document.getElementById("cuestion").value;
  51. var mensaje = document.getElementById("comment").value;
  52.  
  53. var nombre = /(^([a-zA-Z]{1,4}\.\s)?[a-zA-Z\s\u00D1\u00F1\u00E1\u00E9\u00ED\u00F3\u00FA\u00C1\u00C9\u00CD\u00D3\u00DA]{10,400}$)/;
  54. var mail = /^([a-zA-Z0-9_.-])+@(([a-zA-Z0-9-])+.)+([a-zA-Z0-9]{2,4})+$/;
  55. var cadena = /(^[a-zA-Z0-9\s\u00D1\u00F1\u00E1\u00E9\u00ED\u00F3\u00FA\u00C1\u00C9\u00CD\u00D3\u00DAu0021\u0022\u0023\u0024\u0025\u0026\u0027\u0028\u0029\u002B\u002C\u002D\u002E\u002F\u003A\u003B\u003F\u0040\u00A1\u00BF]{10,400}$)/;
  56.  
  57. if (!nombre.test(remitente)) {
  58.     document.getElementById("div-mensaje").innerHTML = "<font color=red>Por favor verifique el campo obligatorio.</font>";
  59.     document.getElementById('author').style.border = "1px solid red";
  60.     document.getElementById('email').style.border = "1px solid #ccc";
  61.     document.getElementById('comment').style.border = "1px solid #ccc";
  62.     document.getElementById("author").focus();
  63.     return false;
  64. } else if (!mail.test(email)) {
  65.     document.getElementById("div-mensaje").innerHTML = "<font color=red>Por favor verifique el campo obligatorio.</font>";
  66.     document.getElementById('author').style.border = "1px solid #ccc";
  67.     document.getElementById('email').style.border = "1px solid red";
  68.     document.getElementById('comment').style.border = "1px solid #ccc";
  69.     document.getElementById("email").focus();
  70.     return false;
  71. } else if (!cadena.test(mensaje)) {
  72.     document.getElementById("div-mensaje").innerHTML = "<font color=red>Por favor verifique el campo obligatorio.</font>";
  73.     document.getElementById('author').style.border = "1px solid #ccc";
  74.     document.getElementById('email').style.border = "1px solid #ccc";
  75.     document.getElementById('comment').style.border = "1px solid red";
  76.     document.getElementById("comment").focus();
  77.     return false;
  78. } enviarMail();
  79.   return false;
  80.  
  81. }

Gracias de antemano
  #2 (permalink)  
Antiguo 15/11/2010, 06:00
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: Como inboco a esta funcion despues del la validacion?

al igual que llamas a la función nuevoAjax() puedes llamar a la función validar(), mas cuando no estás usando el parámetro que le pasas
  #3 (permalink)  
Antiguo 22/11/2010, 12:55
Avatar de tampon  
Fecha de Ingreso: julio-2009
Mensajes: 420
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: Como inboco a esta funcion despues del la validacion?

Ok lo he logrado gracias, era solo un problema de semantica, ahora tengo un problema con la sintaxis, como puedo hacer yo para que la validacion de todos los campos los haga uno por uno con el operador && de javascriprt???? cual seria mas o menos la sintaxis?
  #4 (permalink)  
Antiguo 22/11/2010, 13:56
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: Como inboco a esta funcion despues del la validacion?

a las condicionales quitale el operador (!). de esta manera si todo es true, se lanza la función enviarMail()

Etiquetas: funcion
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:44.