Foros del Web » Programando para Internet » Javascript »

¿2 eventos en un onkeypress?

Estas en el tema de ¿2 eventos en un onkeypress? en el foro de Javascript en Foros del Web. buenas, tengo el siguiente problema quiero poner dos onkeypress pero solo funciona una este es mi codigo: <script> function tabular(e,obj) { tecla=(document.all) ? e.keyCode : ...
  #1 (permalink)  
Antiguo 06/07/2011, 00:05
 
Fecha de Ingreso: julio-2011
Mensajes: 7
Antigüedad: 12 años, 9 meses
Puntos: 0
¿2 eventos en un onkeypress?

buenas, tengo el siguiente problema quiero poner dos onkeypress pero solo funciona una este es mi codigo:

<script>
function tabular(e,obj) {
tecla=(document.all) ? e.keyCode : e.which;
if(tecla!=13) return;
frm=obj.form;
for(i=0;i<frm.elements.length;i++)
if(frm.elements[i]==obj) {
if (i==frm.elements.length-1) i=-1;
break }
frm.elements[i+1].focus();
return false;
}
</script>
<script type="text/javascript">
function validar(e) {
tecla = (document.all) ? e.keyCode : e.which;
if (tecla==8) return true;

patron =/[A-Za-z]/; // Solo acepta letras
te = String.fromCharCode(tecla);
return patron.test(te);
}
</script>

en el campo texto tengo esto:

<input type="text" style="background-color:#D9EEF2"onfocus="this.style.background=('#FC 6')" onblur="this.style.background=('#D9EEF2')" onkeypress="return tabular(event,this)&& return validar(event)" name="Nombres" id="Nombres" />
<br />
<label for="Apellidos">Apellidos:<br />
</label>
<input type="text" style="background-color:#D9EEF2" onfocus="this.style.background=('#FC6')" onblur="this.style.background=('#D9EEF2')"onkeypre ss="return tabular(event,this)&& return validar(event)" name="Apellidos" id="Apellidos" />

no me funciona la parte de onkeypress solo funciona un evento.¿
que puedo hacer?

tambien he probado colocando esto : onkeypress="return validar(event);return tabular(event,this).
  #2 (permalink)  
Antiguo 06/07/2011, 00:26
Avatar de ceSharp  
Fecha de Ingreso: octubre-2008
Ubicación: Madrid
Mensajes: 495
Antigüedad: 15 años, 6 meses
Puntos: 66
Respuesta: ¿2 eventos en un onkeypress?

hola aedo,
Por lo que he visto lo que quieres es que al pulsar intro en el campo de texto pase al siguiente campo, es eso?

quita los return de las llamadas a funciones en el input, tal que así:
onkeypress="tabular(event,this);validar(event)"

y no puedes llamar a dos funciones con &&, eso es solo para los IF, cuando se quieren cumplir dos condiciones (el típico AND de toda la vida)

saludos.
  #3 (permalink)  
Antiguo 06/07/2011, 00:29
Avatar de ceSharp  
Fecha de Ingreso: octubre-2008
Ubicación: Madrid
Mensajes: 495
Antigüedad: 15 años, 6 meses
Puntos: 66
Respuesta: ¿2 eventos en un onkeypress?

y otra cosa que se me ha olvidado,

puedes poner todas la funciones javascript que quieras dentro de las etiquetas <script></script>, es decir, no hace falta abrir una etiqueta, meter una función, cerrar y abrir otra etiqueta script y así sucesivamente, con una basta:

(ejemplo)
<script type="text/javascript">
function uno()
{...}
function dos()
{...}
funcion etc()
{...}
</script>

saludos
  #4 (permalink)  
Antiguo 11/07/2011, 14:34
 
Fecha de Ingreso: julio-2011
Mensajes: 7
Antigüedad: 12 años, 9 meses
Puntos: 0
Respuesta: ¿2 eventos en un onkeypress?

gracias me sirvio.
  #5 (permalink)  
Antiguo 12/07/2011, 10:05
Avatar de Aijoona
Colaborador
 
Fecha de Ingreso: mayo-2011
Ubicación: Buenos Aires
Mensajes: 779
Antigüedad: 13 años
Puntos: 343
Respuesta: ¿2 eventos en un onkeypress?

Cita:
Iniciado por ceSharp Ver Mensaje
hola aedo,
Por lo que he visto lo que quieres es que al pulsar intro en el campo de texto pase al siguiente campo, es eso?

quita los return de las llamadas a funciones en el input, tal que así:
onkeypress="tabular(event,this);validar(event)"

y no puedes llamar a dos funciones con &&, eso es solo para los IF, cuando se quieren cumplir dos condiciones (el típico AND de toda la vida)

saludos.
Si asignas varias functions en los elementos de manera inline sigue siendo un UNICO handler.

Por otro lado no se entiende bien tu aclaración del ampersand, podes usar los operadores logicos donde quieras, siempre que sea sintaxis valida:

Código Javascript:
Ver original
  1. function isValid() { return true; }
  2.  
  3. // Ejecutamos el alert solo si es valido
  4. isValid() && alert('Hola');

Lo cual es similar a:

Código Javascript:
Ver original
  1. if(isValid()) alert('Hola');
__________________
blog | @aijoona

Etiquetas: eventos
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 16:56.