Foros del Web » Programando para Internet » Javascript »

onchange y onkeypress

Estas en el tema de onchange y onkeypress en el foro de Javascript en Foros del Web. Muy buenas, tengo el siguiente select en un formulario: <SELECT name="poblacio" onchange ="poblacionesProximas()" onkeypress = "return no_enter_pres(event)"> poblacionesProximas hace un calculo y lo muestra por ...
  #1 (permalink)  
Antiguo 05/10/2008, 04:44
 
Fecha de Ingreso: marzo-2008
Mensajes: 80
Antigüedad: 16 años, 1 mes
Puntos: 0
onchange y onkeypress

Muy buenas, tengo el siguiente select en un formulario:

<SELECT name="poblacio" onchange="poblacionesProximas()" onkeypress = "return no_enter_pres(event)">

poblacionesProximas hace un calculo y lo muestra por otro select, funciona bien. no_enter_press hace lo siguiente:

function no_enter_pres(e) {
return (e.keyCode!=13);
}

es decir, devuelve cierto si no se ha pulsado enter. Sirve para que si el usuario pulsa enter no se haga el submit del formulario, lo cual es muy molesto porque el formulario es muy grande.

El tema es que, en IE7, no funciona. Funcionan las dos funciones por separado, pero juntas no. En FireFox todo correcto! Creo que hay un problema cuando IE maneja los dos eventos a la vez.

¿ideas?

gracias

Última edición por Bram; 05/10/2008 a las 04:47 Razón: dejar mas claro
  #2 (permalink)  
Antiguo 05/10/2008, 05:02
Avatar de Legoltaz  
Fecha de Ingreso: agosto-2008
Mensajes: 325
Antigüedad: 15 años, 8 meses
Puntos: 6
Respuesta: onchange y onkeypress

Prueba a, en vez de poner e.keyCode, crear la variable tecla, ya que en algunos navegadores no funciona e.keyCode.

Código JAVASCRIPT:
Ver original
  1. var tecla = (document.all) ? e.keyCode : e.which;
  #3 (permalink)  
Antiguo 05/10/2008, 09:06
Avatar de buzu  
Fecha de Ingreso: octubre-2006
Ubicación: San Francisco, CA
Mensajes: 2.168
Antigüedad: 17 años, 6 meses
Puntos: 122
Respuesta: onchange y onkeypress

usa window.event en lugar de e para el explorer. Con un if puedes buscar cual de los dos metodos está disponible y actuas dependiendo del que esté disponible.
__________________
twitter: @imbuzu
  #4 (permalink)  
Antiguo 05/10/2008, 09:14
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Respuesta: onchange y onkeypress

Parece más sencilla la opción de Legoltaz, o también:

Código javascript:
Ver original
  1. var tecla=e.charCode||e.keyCode;

Saludos,
  #5 (permalink)  
Antiguo 06/10/2008, 02:36
 
Fecha de Ingreso: marzo-2008
Mensajes: 80
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: onchange y onkeypress

Tomo nota, aunqué el problema no era la funcion que detecta si se pulsa enter.

Esta función ya me funciona en IE si no la pongo en un select que a la vez tiene un "onchange".

<SELECT name="poblacio" onchange="poblacionesProximas()" onkeypress = "return no_enter_pres(event)">


El problema es que "onchange" y "onkeypress", los dos a la vez en un select, no me funciona el no_enter_press. De hecho, si pongo un alert en no_enter_pres no se ejecuta. Simplemente omite el "onkeypress". Solo en IE.

aún así, he canviado la función y la he puesto así:

function no_enter_pres(e) {

var tecla=e.charCode||e.keyCode;

return (tecla!=13);
}

para maximizar la compatibilidad con otros navegadores. No obstante el problema persiste al igual que antes.
  #6 (permalink)  
Antiguo 06/10/2008, 02:42
Avatar de marcopoloaz06  
Fecha de Ingreso: julio-2007
Ubicación: México
Mensajes: 457
Antigüedad: 16 años, 9 meses
Puntos: 11
Respuesta: onchange y onkeypress

hola,
puedes
comparar
las diferencias
de cada navegador
aquí un muy buen tuto

http://kusor.net/traducciones/brainj...vents4.es.html

veeelo
;]
__________________
Aerolíneas Alicia :D
  #7 (permalink)  
Antiguo 20/10/2008, 05:14
 
Fecha de Ingreso: marzo-2008
Mensajes: 80
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: onchange y onkeypress

nada, llevo un montón de tiempo sin encontrar solución.

El problema es grave, porque si los usuarios presionan enter al select se hace una inserción a la Base de Datos que no se puede omitir.

Como que veo que onkeypres y onchange no funcionan en IE si estan en el mismo select, ahora busco otra manera de hacerlo.

El caso es que tengo una función X que se ejecuta al hacer un onchange.
Alguna idea para omitir un posible "enter" pulsado sin usar el elemento onkeypress?
  #8 (permalink)  
Antiguo 20/10/2008, 05:55
 
Fecha de Ingreso: marzo-2008
Mensajes: 80
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: onchange y onkeypress

por fin encontré la solución, replanteando el problema diferente.

Apliqué el evento onkey press al formulario, y no al select.
Así no había problemas con onkeypress y onchange en el mismo tag.

Además, tenia un inupt donde se podía poner una descripción. Tuve que jugar con el focus para permitir a ese input pulsarse enter.

Espero que eso sirva a alguien con los mismos problemas alguna vez.

Un saludo
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 13:08.