Foros del Web » Programando para Internet » Javascript »

Problemas con evento onkeydown

Estas en el tema de Problemas con evento onkeydown en el foro de Javascript en Foros del Web. Hola a todos. Tengo un problema con JS. Les comento. Tengo un formulario con un solo campo y un boton y quiero que si se ...
  #1 (permalink)  
Antiguo 18/12/2013, 13:36
Avatar de cell001  
Fecha de Ingreso: abril-2010
Mensajes: 40
Antigüedad: 14 años
Puntos: 5
Problemas con evento onkeydown

Hola a todos. Tengo un problema con JS.

Les comento. Tengo un formulario con un solo campo y un boton y quiero que si se detecta vacio, no se envie el formulario, ya sea al dar clic en el boton enviar o al dar enter en el input text

Ya lo tengo hecho para que lo haga con el boton pero no se bien como hacerlo con el input text pues si le dan enter no checa si esta vacio y se envia el formulario de todas maneras.

Les dejo el codigo:
Código HTML:
<head>
<script> 
function vacios(){ 
var name= formulario.nombre.value;

if (name!= ""){ 
    formulario.submit();
}
 else{ 
   alert("Llene todos los campos por favor");	
} 
}
</script>
</head>
<body>
<form id="formulario" method="post" action="acciones.php">
Nombre:  <input type="text" id="nombre" name="nombre" value="" onkeydown="javascript:if(event.keyCode == 13){vacios();}" /> <!--Este es el que no funciona -->

<input type="button" id="guardar" value="Enviar nombre" onclick="vacios();" /> <!-- Este si funciona  --> 
El problema como les digo, es que no logro hacer que al presionar enter en el input text, ejecute la funciona correctamente pues si por ejemplo dejo el campo vacio, si me muestra el mensaje de "Llene los campos" pero de todos modos se ejecuta el formulario y envia a su destino

¿Qué me falta allí para que funcione correctamente?
  #2 (permalink)  
Antiguo 18/12/2013, 13:48
Colaborador
 
Fecha de Ingreso: septiembre-2013
Ubicación: España
Mensajes: 3.648
Antigüedad: 10 años, 7 meses
Puntos: 578
Respuesta: Problemas con evento onkeydown

event no es una variable global. Para tomar el evento como referencia en una variable (bien sea event, evt, evento...) tienes que pasarle un parámetro a la función. En este caso creo que no puedes y deberías crear una función ya preparada que haga esa comparación.
  #3 (permalink)  
Antiguo 18/12/2013, 14:37
Avatar de cell001  
Fecha de Ingreso: abril-2010
Mensajes: 40
Antigüedad: 14 años
Puntos: 5
Respuesta: Problemas con evento onkeydown

No estoy seguro si te entendí pero deja lo intento

Significa que tengo que hacer otra funcion mas (aparte de la que ya tengo alli "vacios()") y que esa nueva función sea en la que verifique lo de keyCode == 13 ?
  #4 (permalink)  
Antiguo 18/12/2013, 14:45
Colaborador
 
Fecha de Ingreso: septiembre-2013
Ubicación: España
Mensajes: 3.648
Antigüedad: 10 años, 7 meses
Puntos: 578
Respuesta: Problemas con evento onkeydown

Cita:
Iniciado por cell001 Ver Mensaje
No estoy seguro si te entendí pero deja lo intento

Significa que tengo que hacer otra funcion mas (aparte de la que ya tengo alli "vacios()") y que esa nueva función sea en la que verifique lo de keyCode == 13 ?
  #5 (permalink)  
Antiguo 18/12/2013, 14:50
Avatar de marlanga  
Fecha de Ingreso: enero-2011
Ubicación: Murcia
Mensajes: 1.024
Antigüedad: 13 años, 3 meses
Puntos: 206
Respuesta: Problemas con evento onkeydown

Léete todo este capítulo
http://librosweb.es/javascript/capitulo_6.html

Cuando lo termines, tendrás el tema de los eventos en javascript mucho mas claro.
De hecho, si te interesa, lee el libro entero, es ideal para coger un buen nivel en javascript.
http://librosweb.es/javascript/
  #6 (permalink)  
Antiguo 18/12/2013, 15:23
Avatar de cell001  
Fecha de Ingreso: abril-2010
Mensajes: 40
Antigüedad: 14 años
Puntos: 5
Respuesta: Problemas con evento onkeydown

ya lo sulucioné, creo jaja

en el input usé onkeydown="javascript:if(event.keyCode == 13){vacio();}"

Después quite el action del formulario y la agregué en la función para que no me envíe a ningún lado sin antes verificar si está o no vacío.

El libro de JS tengo en mente leerlo, no ahorita pues no puedo pero cuando tenga una oportunidad no me caería nada mal .

Saludos
  #7 (permalink)  
Antiguo 18/12/2013, 15:33
Avatar de marlanga  
Fecha de Ingreso: enero-2011
Ubicación: Murcia
Mensajes: 1.024
Antigüedad: 13 años, 3 meses
Puntos: 206
Respuesta: Problemas con evento onkeydown

El libro son 20 o 25 páginas. Te lo lees en una o dos horas. Hazme caso, pierde esas dos horas y léetelo. El capítulo de eventos son tres páginas. Meter javascript en los atributos de los elementos html es por lo general una mala práctica, igual que meter estilos en ellos.
  #8 (permalink)  
Antiguo 18/12/2013, 15:40
Avatar de cell001  
Fecha de Ingreso: abril-2010
Mensajes: 40
Antigüedad: 14 años
Puntos: 5
Respuesta: Problemas con evento onkeydown

parece ser que en Firefox no funciona, ¿qué le pasa a Firefox que últimamente se hizo muy rebelde y pesado?

No puedo perder esas 1 o 2 hrs en el trabajo, dejaré eso para después y haré otros pendientes, llegando a mi casa me tomaré ese tiempo, pero si saben una solución sencilla con el problema con firefox se los agradecería

Saludos


Por lo regular no soy yo quien maneja la parte de JS pero aprovechando el tema deseo preguntar algo, ¿cuando en una pagina usaré varias lineas de JS para diferentes cosas ¿Cuál es la mejor manera de ejecutarlo? ¿Todo el código arriba dentro de los headers o en otro archivo comprimido y siendo llamado como link dentro de los headers?

Última edición por cell001; 18/12/2013 a las 16:15

Etiquetas: evento, formulario, funcion, input, js, php
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 06:05.