Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] contar oraciones y saltos de linea en un textarea

Estas en el tema de contar oraciones y saltos de linea en un textarea en el foro de Javascript en Foros del Web. hola, estoy verificando un formulario en javascript, pero no soy capaz de que cada vez que cuando el dato introducido en el campo del formulario ...
  #1 (permalink)  
Antiguo 02/10/2015, 08:12
 
Fecha de Ingreso: marzo-2014
Ubicación: Galicia
Mensajes: 24
Antigüedad: 10 años, 9 meses
Puntos: 0
Pregunta contar oraciones y saltos de linea en un textarea

hola, estoy verificando un formulario en javascript, pero no soy capaz de que cada vez que cuando el dato introducido en el campo del formulario sea erróneo, la etiqueta label que corresponda al campo del formulario cambie a color rojo y el foco se coloque en ese campo del formulario.¿ como sería el código que tengo que añadir?, gracias

Código Javascript:
Ver original
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4.     <meta charset="UTF-8">
  5.     <title>Document</title>
  6.     <link rel="stylesheet" href="css/formulario.css">
  7.     <script type="text/javascript">
  8.  
  9.    
  10.  
  11.         function verificaDatos(){
  12.             filtro = 1;
  13.             errores = "Datos incorrectos. Verifique formulario\n\n"
  14.  
  15.             miNombre=document.form1.nombre.value;
  16. if (!miNombre==/^[A-z]{3,10}$/.test(miNombre) || miNombre.length==0){
  17. errores+= "Escribe tu nombre  \n";
  18. filtro=0;
  19. }
  20. miEmail=document.form1.mail.value;
  21. if(!/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,4})+$/.test(miEmail)){
  22. filtro=0;
  23. errores+= "Escribe tu Email \n"
  24. }
  25. miEdad= document.form1.Edad.value;
  26. if(isNaN(miEdad)|| miEdad.length==0){
  27. filtro=0;
  28. errores+= "Escribe tu edad \n";
  29. }else if(miEdad<18){
  30. filtro=0;
  31. errores+= "Acceso denegado.Eres menor de Edad \n";
  32. }
  33.             miLenguaje = document.form1.lenguaje;
  34.             bandera=0;
  35.             for (i=0; i<miLenguaje.length; i++){
  36.                 if (miLenguaje[i].checked){
  37.                     bandera++;
  38.                 }
  39.             }
  40.             if (bandera==0){
  41.                 errores += "No hay lenguajes seleccionados. Elija al menos uno \n";
  42.                 filtro=0;
  43.             }
  44.  
  45.     if (document.form1.navegador.selectedIndex==0){
  46.         errores += "Debe seleccionar un navegador \n\n";
  47.         filtro = 0;
  48.     }
  49.  
  50.     if (filtro == 0) {
  51.         alert(errores);
  52.         return 0;
  53.     }
  54.    
  55.     alert("Su formulario ha sido enviado");
  56.     document.form1.submit();
  57.     }
  58.     </script>
  59. </head>
  60. <body>
  61. <div id="contenedor">
  62.  
  63.     <form action="" id="form1" name="form1" method="post" enctype="multipart/form-data">
  64.         <div>
  65.             <label for="nombre">Nombre</label>
  66.             <input type="text" id="nombre" name="nombre" autofocus >
  67.         </div>
  68.         <div>
  69.             <label for="mail">Email</label>
  70.             <input type="text" id="mail" name="mail" >
  71.         </div>
  72.         <div>
  73.             <label for="edad">Edad</label>
  74.             <input type="text" id="edad" name="edad" >
  75.         </div>
  76.         <div>
  77.             <label for="so">Sistema Operativo</label>
  78.             <input type="radio" id="so" name="so" value="Windows" checked> Windows
  79.             <input type="radio" id="so" name="so" value="Linux" > Linux
  80.             <input type="radio" id="so" name="so" value="OsX" > OsX
  81.         </div>
  82.         <div>
  83.             <label for="lenguaje">Lenguajes Conocidos</label>
  84.             <input type="checkbox" id="lenguaje" name="lenguaje" value="php" tabindex=5> php
  85.             <input type="checkbox" id="lenguaje" name="lenguaje" value="java" > Java
  86.             <input type="checkbox" id="lenguaje" name="lenguaje" value="c++"> C++
  87.             <input type="checkbox" id="lenguaje" name="lenguaje" value="asp" > asp
  88.         </div>
  89.         <div>
  90.         <label for="navegador">Navegador:</label>
  91.         <select name="navegador" id="navegador" >
  92.             <option value="">Seleccione Navegador</option>
  93.             <option value="explorer">Explorer</option>
  94.             <option value="chrome">Chrome</option>
  95.             <option value="firefox">Firefox</option>
  96.             <option value="safari">Safari</option>
  97.         </select>
  98.     </div> 
  99.  
  100.     <div>
  101.         <label for="observa">Observaciones:</label>
  102.         <textarea name="observa" id="observa" maxlength="256" ></textarea>
  103.     </div> 
  104.         <div>
  105.             <input type="button" value="Enviar" onclick="verificaDatos()" >
  106.         </div>
  107.     </form>
  108.  
  109.    
  110. </body>
  111. </html>
  #2 (permalink)  
Antiguo 02/10/2015, 13:56
 
Fecha de Ingreso: enero-2014
Ubicación: Navarra
Mensajes: 94
Antigüedad: 10 años, 11 meses
Puntos: 18
Respuesta: contar oraciones y saltos de linea en un textarea

Hola.

En un documento html el identificador debe ser unico, no puede haber mas de una etiqueta con el mismo id.

Recuerda que javascript es sensible a mayusculas, no es lo mismo edad que Edad

para acceder a los label puedes usar previousElementSibling con ello obtienes el elemento anterior.

Tu codigo seria algo asi:

Código:
 
<!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Document</title>
        <link rel="stylesheet" href="css/formulario.css">
        <script type="text/javascript">     
            function verificaDatos(){            
                var filtro = 1;
                errores = "Datos incorrectos. Verifique formulario\n\n";     
                miNombre=document.form1.nombre.value;
		  if (!miNombre==/^[A-z]{3,10}$/.test(miNombre) || miNombre.length==0){
		  errores+= "Escribe tu nombre  \n";
		  filtro=0;
		  document.getElementById("nombre").previousElementSibling.style.color = "red";
		  } else { 
		  document.getElementById("nombre").previousElementSibling.style.color = "black";
		  }
		miEmail=document.form1.mail.value;
		  if(!/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,4})+$/.test(miEmail)){
		  filtro=0;
		  errores+= "Escribe tu Email \n"
		  document.getElementById("mail").previousElementSibling.style.color = "red";
		  } else { 
		  document.getElementById("mail").previousElementSibling.style.color = "black";
		  }
		miEdad= document.form1.edad.value;
		  if(isNaN(miEdad)|| miEdad.length==0){
		  filtro=0;
		  document.getElementById("edad").previousElementSibling.style.color = "red";
		  errores+= "Escribe tu edad \n";
		  }else if(miEdad<18){
		  filtro=0;
		  errores+= "Acceso denegado.Eres menor de Edad \n";
		  document.getElementById("edad").previousElementSibling.style.color = "red";
		  } else { 
		  document.getElementById("edad").previousElementSibling.style.color = "black";
		  }
                miLenguaje = document.form1.lenguaje;
                bandera=0;
                for (i=0; i<miLenguaje.length; i++){
                    if (miLenguaje[i].checked){
                        bandera++;
                    }
                }
                if (bandera==0){
                    errores += "No hay lenguajes seleccionados. Elija al menos uno \n";
                    filtro=0;
                    document.getElementById("lenguajes").style.color = "red";
                    } else { 
		  document.getElementById("lenguajes").style.color = "black";
		  }     
                if (document.form1.navegador.selectedIndex==0){
                errores += "Debe seleccionar un navegador \n\n";
                filtro = 0;
                document.getElementById("navegador").previousElementSibling.style.color = "red";
               } else { 
		  document.getElementById("navegador").previousElementSibling.style.color = "black";
		  }
     
              if (filtro == 0) {
              alert(errores);
              return false;
        }
        
        alert("Su formulario ha sido enviado");
        document.form1.submit();
        }
        </script>
    </head>
    <body>
    <div id="contenedor">
     
        <form action="" id="form1" name="form1" method="post" enctype="multipart/form-data">
            <div>
                <label for="nombre">Nombre</label>
                <input type="text" id="nombre" name="nombre" autofocus >
            </div>
            <div>
                <label for="mail">Email</label>
                <input type="text" id="mail" name="mail" >
            </div>
            <div>
                <label for="edad">Edad</label>
                <input type="text" id="edad" name="edad" >
            </div>
            <div>
                <label for="so">Sistema Operativo</label>
                <input type="radio" name="so" value="Windows" checked> Windows
                <input type="radio" name="so" value="Linux" > Linux
                <input type="radio" name="so" value="OsX" > OsX
            </div>
            <div>
                <label for="lenguaje" id="lenguajes" >Lenguajes Conocidos</label>
                <input type="checkbox" name="lenguaje" value="php" tabindex=5> php
                <input type="checkbox" name="lenguaje" value="java" > Java
                <input type="checkbox" name="lenguaje" value="c++"> C++
                <input type="checkbox" name="lenguaje" value="asp" > asp
            </div>
            <div>
            <label for="navegador">Navegador:</label>
            <select name="navegador" id="navegador" >
                <option value="">Seleccione Navegador</option>
                <option value="explorer">Explorer</option>
                <option value="chrome">Chrome</option>
                <option value="firefox">Firefox</option>
                <option value="safari">Safari</option>
            </select>
        </div>  
     
        <div>
            <label for="observa">Observaciones:</label>
            <textarea name="observa" id="observa" maxlength="256" ></textarea>
        </div>  
            <div>
                <input type="button" value="Enviar" onclick="verificaDatos()" >
            </div>
        </form>
     
        
    </body>
    </html>
Saludos.

Etiquetas: formulario, formularios, html, input, php, saltos, select, textarea, verificar
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 20:57.