Ver Mensaje Individual
  #1 (permalink)  
Antiguo 02/11/2010, 18:40
Avatar de tampon
tampon
 
Fecha de Ingreso: julio-2009
Mensajes: 420
Antigüedad: 15 años, 4 meses
Puntos: 0
Ayuda para pulir una función para validar

Hola necesito ayuda con este codigo, por mas que le busco no le encuentro solucion, lo pongo haber si algun teso en ajax me puede dar una mano.

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 validarNombre(emis) {
  24.   var check  = /(^([a-zA-Z]{1,4}\.\s)?[a-zA-Z\s\u00D1\u00F1\u00E1\u00E9\u00ED\u00F3\u00FA\u00C1\u00C9\u00CD\u00D3\u00DA]{3,30}$)/;
  25.   if (check.test(emis)) return true;
  26.   else return false;
  27. }
  28.  
  29. function validarEmail(mail) {
  30.   var check  = /^([a-zA-Z0-9_.-])+@(([a-zA-Z0-9-])+.)+([a-zA-Z0-9]{2,4})+$/;
  31.   if (check.test(mail)) return true;
  32.   else return false;
  33. }
  34.  
  35. function validarComentario(mens) {
  36.   var check = /(^[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}$)/;
  37.   if (check.test(mens)) return true;
  38.   else return false;
  39. }
  40.  
  41. function enviarMail(){
  42.  
  43.   var mensaje=document.getElementById("div-mensaje");
  44.    
  45.     var emis=document.enviar_email.author.value;
  46.     var mail=document.enviar_email.email.value;
  47.     var url=document.enviar_email.url.value;
  48.     var cues=document.enviar_email.cuestion.value;
  49.     var mens=document.enviar_email.comment.value;
  50.    
  51.     if(!validarNombre(emis)){
  52.         mensaje.innerHTML="Se requiere el nombre del remitente.";
  53.     } else if(!validarEmail(mail)){
  54.         mensaje.innerHTML="Email vacio o con formato no valido.";
  55.     } else if(!validarComentario(mens)){
  56.         mensaje.innerHTML="El comentario es muy corto o contiene caracteres invalidos.";
  57.     } else {
  58.    
  59.     ajax=nuevoAjax();
  60.     ajax.open("POST", "php/envia_mail.php",true);
  61.     ajax.onreadystatechange=function() {
  62.       if (ajax.readyState==4) {
  63.         mensaje.innerHTML = ajax.responseText
  64.       }
  65.       borrarCampos()
  66.     }
  67.     ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
  68.     ajax.send("author="+emis+"&email="+mail+"&url="+url+"&cuestion="+cues+"&mensaje="+mens)
  69.   }
  70. }

Código HTML:
Ver original
  1. <form onsubmit="return validar(this);" name="enviar_email" id="form" action="">
  2. <p class="fuente5">Nombre completo <span class="requerido">*</span></p>
  3. <input type="text" name="author" />
  4. <p class="fuente5">Correo electr&oacute;nico <span class="requerido">*</span></p>
  5. <input type="text" name="email" />
  6. <p class="fuente5">P&aacute;gina web <span class="opcional">(opcional)</span></p>
  7. <input type="text" name="url" value="http://www." />
  8. <p class="fuente5">Asunto <span class="opcional">(opcional)</span></p>
  9. <select name="cuestion">
  10. <option value="Sin Asunto">Asunto</option>
  11. <option value="Oferta Laboral">Oferta Laboral</option>
  12. <option value="Consulta Presupuesto">Consultar Presupuesto</option>
  13. <option value="Personal">Personal</option>
  14. <p class="fuente5">Mensaje <span class="requerido">*</span></p>
  15. <textarea name="comment" cols="30%" rows="3" ></textarea>
  16. <br />
  17. <input type="submit" value="">
  18. </form>
  19. <div id="div-mensaje" class="fuente6"></div>

de antemano gracias.