Autor Tema: Problema al validar con JavaScript SyntaxError: expected expression, got keyword  (Leído 3660 veces)

omikron87

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 1
    • Ver Perfil
Hola, tengo un problema para validar un formulario de HTML en JavaScript, ya que no me comprueba ningún campo. Agradecería sus ayudas. Gracias!

Pongo solo el formulario en HTML para que no sea tan largo:

Citar
<form action="registrar.php" method="post" class="form-register" onsubmit="return validar()">
                  <div class="row half">
                     <div class="12u">
                        <input class="text" type="text" name="name" id="name" placeholder="Nombre y apellido" />
                     </div>
                  </div>
                  <div class="row half">
                     <div class="12u">
                        <input class="text" type="text" name="email" id="email" placeholder="Email" />
                     </div>
                  </div>
                  <div class="row half">
                     <div class="12u">
                        <textarea name="message" id="message" placeholder="Escriba aquí su mensaje..."></textarea>
                     </div>
                  </div>
                  <div class="row half">
                     <div class="12u">
                        <ul class="actions">
                           <li>
                              <input type="submit" value="Enviar" class="button alt" />
                           </li>
                        </ul>
                     </div>
                  </div>
               </form>


El código de JavaScript es el siguiente:

Citar
function validaVacio(valor) {
        valor = valor.replace("&nbsp;", "");
        valor = valor == undefined ? "" : valor;
        if (!valor || 0 === valor.trim().length) {
            return true;
            }
        else {
            return false;
            }
        }

    function validar(){
   
    var correo = document.getElementById("email").value;
    var nombre = document.getElementsByName("name")[0].value;
    var text = document.getElementsByName("message")[0].value;
   
    var expr = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;

   //COMPRUEBA MAIL, NOMBRE Y TEXT AREA
    if ( !expr.test(correo) )
   {
        alert("Error: La dirección de correo " + correo + " es incorrecta.");
        return false;
      
   else if( !expr.test(nombre) )
   {
    alert("Error: La dirección de correo " + nombre + " es incorrecta.");
    return false;
   }

   else if( !expr.test(text) )
   {
    alert("Error: La dirección de correo " + text + " es incorrecta.");
    return false;
   }
   
    }
   
    //COMPRUEBA CAMPOS VACIOS
    if ( validaVacio(correo.value) || validaVacio(nombre.value) || validaVacio(text.value)) {
        alert("Los campos no pueden quedar vacios");
        return false;
    }
    return true;
    }

« Última modificación: 24 de Noviembre 2018, 18:54 por Ogramar »

Ogramar

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2660
    • Ver Perfil
Buenas, para pegar código, poner título a los temas, etc. mírate este hilo: https://aprenderaprogramar.com/foros/index.php?topic=1460.0 Para pegar código hazlo como se indica en ese hilo, no lo pegues como citas.

En tu código empieza por revisar la sintaxis del if else, no la tienes bien. Mira en https://aprenderaprogramar.com/index.php?option=com_content&view=article&id=797:if-else-if-else-if-javascript-condicionales-del-flujo-o-estructuras-de-decision-ejemplos-ejercicios-cu01119e&catid=78&Itemid=206 cómo se construye un if else.

En este fragmento tienes un error de sintaxis ya que no tienes bien cerradas las llaves del if.

 if ( !expr.test(correo) )
   {
        alert("Error: La dirección de correo " + correo + " es incorrecta.");
        return false;
     
   else if( !expr.test(nombre) )


Tienes que revisar toda la sintaxis de tu código. En el curso de JavaScript en https://aprenderaprogramar.com/index.php?option=com_content&view=category&id=78&Itemid=206 puedes ver ejemplos de todas las construcciones JavaScript y de validaciones

Salu2

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".