Foros del Web » Programando para Internet » Javascript »

Hacer una buena comprobacion con javascript

Estas en el tema de Hacer una buena comprobacion con javascript en el foro de Javascript en Foros del Web. Hola tengo las 2 siguientes funciones : @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código Javascript : Ver original function comprobar_envio ( ) {     var n = form. ...
  #1 (permalink)  
Antiguo 15/08/2012, 05:29
Avatar de patilanz  
Fecha de Ingreso: enero-2012
Mensajes: 880
Antigüedad: 12 años, 3 meses
Puntos: 29
Exclamación Hacer una buena comprobacion con javascript

Hola tengo las 2 siguientes funciones :

Código Javascript:
Ver original
  1. function comprobar_envio() {
  2.     var n = form.name.value;
  3.     var e = form.email.value;
  4.     var p = form.phone.value;
  5.     var t = form.tema.value;
  6.     var m = form.message.value;
  7.     var errores;
  8.     if(n.length > 0 && e.length > 0 && t.length > 0 && m.length > 0) {
  9.         if(n.length < 3) {
  10.             errores += '<font size="5" color="red">Името е невалидно!</font><br />'; 
  11.            
  12.         }
  13.         if(!isNaN(n)) {
  14.             errores += '<font size="5" color="red">Името не трябва да съдържа цифри!</font><br />'
  15.             var n = true;
  16.         }
  17.         if(comprobar_correo()) {
  18.             errores += '<font size="5" color="red">Имейлът е невалиден!</font><br />';
  19.             var e = true;
  20.         }
  21.         if(p.length > 0) {
  22.             if(!/^([0-9]{3} ){2}([0-9]{3})$/.test(p) || !/^[0-9]{9}$/.test(p) || !/^(([0-9]{3})-){2}([0-9]{3})$/.test(p)) {
  23.                 errores += '<font size="5" color="red">Телефонът е невалиден!</font>';
  24.             }
  25.            
  26.                
  27.            
  28.         }
  29.     } else {
  30.             errores += '<font size="5" color="red">Попълнете всички задължителни полета!</font>';
  31.     }
  32.     return errores;
  33. }
  34. function enviar() {
  35.     if(comprobar_envio()) {
  36.         d = document.getElementById('errores');
  37.         d.style.opacity = '0.9';
  38.         d.style.height = '169px';
  39.         var e =comprobar_envio();
  40.         d.innerHTML = e.substr(9,e.length);
  41.     }  
  42. }


El error esta en que no me comprueba bien el error en comprobar el telefono con las expresiones regulares.
Y luego cuando el error ya no existe se queda alli y no desaparece ...
Alguna forma de solucionarlo ???

Las respuestas están en otro idioma pero esto creo que no sera algún problema...

Gracias :)

Última edición por patilanz; 15/08/2012 a las 05:31 Razón: Falta de contenido
  #2 (permalink)  
Antiguo 15/08/2012, 05:42
Avatar de dontexplain  
Fecha de Ingreso: junio-2012
Mensajes: 536
Antigüedad: 11 años, 10 meses
Puntos: 127
Respuesta: Hacer una buena comprobacion con javascript

Tienes un error de lógica en el if

según lo que tienes establecido:

si no coincide con la primera regexp o si no coincide con la segunda o si no coincide con la tercera da error, eso significa que tendrá que coincidir con las tres a la vez para que no se ejecute el error, o sea, que el teléfono mágicamente sea de las tres formas a la vez, eso es imposible; para que eso tenga lógica sustituye los OR (||) por AND (&&)

!/^([0-9]{3} ){2}([0-9]{3})$/.test(p) && !/^[0-9]{9}$/.test(p) && !/^(([0-9]{3})-){2}([0-9]{3})$/.test(p)

Un saludo.
__________________
21añero.
HTML/CSS, PHP, JS/jQuery, Mysql; NodeJS/Socket.io (& V8); C++ ; Python (wxpy); Ensamblador.
Músico (clarinetista/pianista) y compositor

Etiquetas: comprobar_envio, error_comprobar
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 13:34.