Estoy leyendo un tutorial de Javascript, estoy haciendo un archivo html con una función javascript con un cuadro, el hecho es que la alerta no muestra lo que entra en el campo de texto, ¿qué estoy haciendo mal?, Este es mi código. No estoy del todo claro, cómo maneja el evento en Blur, ¿alguien explica más al respecto? como en el tutorial, la única explicación que dan es "Perder el control de enfoque", no sé qué quieren decir con la palabra foco, o cómo se maneja el cuadro de texto, sin ingresar el botón.

<html>
    <head>
        <script>
            function show ()
            {
            var age= parseInt (cage.value);
                if (age<=18)
            alert("access denied");
                else
            alert("Welcome");
            }
        </script>
        <title> New Page I </title>
    </head> 

    <body>  
        Age: 
        <input type="text" id "cage" name="cage" size="10"
    onBlur=show();> 

    </body>
</html>
0
franvergara66 25 ago. 2011 a las 16:35

4 respuestas

La mejor respuesta

El evento onBlur se desencadena cuando el control actual pierde el foco. Cuando un control tiene foco, lo que significa que actualmente está "seleccionado", las cosas que pueden hacer que pierda el foco incluyen hacer clic en otro control o presionar la tecla de tabulación.

La razón por la cual su método no funciona correctamente es porque tiene un pequeño error. Prueba esto:

<html> 
    <head> 
        <script> 
            function show(el) 
            { 
              var age = parseInt(el.value); 
              if (age<=18) 
                alert("access denied"); 
              else 
                alert("Welcome"); 
            } 
        </script> 
        <title> New Page I </title> 
    </head>  

    <body>   
        Age:  
        <input type="text" id="cage" name="cage" size="10" onBlur="show(this);" />  
     </body> 
</html> 
1
Chris Gessler 30 ago. 2011 a las 22:22

Puede obtener un error porque le faltan los paréntesis () después de la declaración de la función. Incluso si tiene una función sin parámetros, debe incluir los paréntesis () después del nombre de la función.

El foco es cuando un elemento del formulario recibe el control, por lo que puede escribirlo o cambiar las opciones de un menú desplegable. Al igual que onBlur, también hay un evento onFocus.

El enfoque generalmente se establece en la carga de la página. así que cuando se carga la página para que el usuario no tenga que ir y hacer clic en el primer campo que debe completar.

En este ejemplo puedes tener:

Javascript 

function setFocus(){
   document.getElementById('cage').focus();
}

HTML

<body onLoad="setFocus();">  
1
dchoksi 25 ago. 2011 a las 12:56

El evento onBlur se activa cuando hace clic en cualquier cosa que no sea el cuadro de entrada (por ejemplo, hace clic en otro o hace clic en un enlace a algo). Básicamente, si no puede escribir en el campo de entrada, no tiene foco .

En cuanto a por qué no funciona, vea la respuesta de @Teja Kantamneni, que debería hacer que funcione.

1
Thor Jacobsen 25 ago. 2011 a las 12:44

Debe usar () después del nombre de la función y buscar primero el elemento y luego recuperar el valor de él ... aquí hay un código de muestra ... (debería funcionar, no probado)

 function show(){
       var age = document.getElementById('cage').value;
       if (parseInt(age, 10)<=18)
            alert("access denied");
        else
            alert("Welcome");
    }
1
Teja Kantamneni 25 ago. 2011 a las 12:41