Foros del Web » Programando para Internet » Javascript »

Ayuda para cambiar la tecla pulsada

Estas en el tema de Ayuda para cambiar la tecla pulsada en el foro de Javascript en Foros del Web. Hola a todos, Tengo un textfield en el que quiero q se muestre solo mayusculas. Para ello tengo el siguiente codigo en el keypress: Código: ...
  #1 (permalink)  
Antiguo 18/07/2010, 12:21
 
Fecha de Ingreso: julio-2010
Mensajes: 3
Antigüedad: 13 años, 9 meses
Puntos: 0
Ayuda para cambiar la tecla pulsada

Hola a todos,

Tengo un textfield en el que quiero q se muestre solo mayusculas. Para ello tengo el siguiente codigo en el keypress:

Código:
<input name="producto" id="producto" onKeyPress="Mayusc(event)" type="text">
y la funcion Mayusc es la siguiente:

Código:
function Mayusc(e){
        var tecla=(document.all) ? e.keyCode : e.which;        
        if (EsMinuscula(tecla)){           
           if (document.all) {              
              e.keyCode=tecla-32;
           }else{              
              e.which=tecla-32;             
           }
        }
}
Para IE si funciona, pero en firefox se cae al momento de intentar asignar un nuevo valor al e.which. Alguna idea de como puedo solucionar este tema.

Gracias por su ayuda.
  #2 (permalink)  
Antiguo 18/07/2010, 12:44
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Ayuda para cambiar la tecla pulsada

de lo que recuerdo, en firefox falla porque no se puede -según el estandar DOM Event- cambiar las propiedades de un objeto evento una vez inicializado. fíjate que el código actual tiene otras implicaciones. si se ingresa otros caracteres, por ejemplo números, la rutina toma el keycode y le resta 32 resultando en un caracter distinto. otra solución es obtener el elemento textfield por argumento, convertir el string a mayúscula con toUpperCase (leyendo la propiedad value) y asignarlo al textfield.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #3 (permalink)  
Antiguo 18/07/2010, 12:54
 
Fecha de Ingreso: julio-2010
Mensajes: 3
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: Ayuda para cambiar la tecla pulsada

Cita:
Iniciado por zerokilled Ver Mensaje
de lo que recuerdo, en firefox falla porque no se puede -según el estandar DOM Event- cambiar las propiedades de un objeto evento una vez inicializado. fíjate que el código actual tiene otras implicaciones. si se ingresa otros caracteres, por ejemplo números, la rutina toma el keycode y le resta 32 resultando en un caracter distinto. otra solución es obtener el elemento textfield por argumento, convertir el string a mayúscula con toUpperCase (leyendo la propiedad value) y asignarlo al textfield.
Respecto a los otros caracteres, eso ya es validado por la funcion EsMinuscula que valida solo letras minusculas.

Respecto al toUpperCase con el value del textfield, el value solo me devuelve el texto sin considerar a la tecla recien pulsada. Si esto lo coloco en el keypress obtenbo algo asi "TEXTo" , si lo pongo en el keyup, si resulta pero por un pequeño instante se nota como hace el cambio a mayusculas, lo cual no se ve muy estetico. Por eso queria hacerlo tecla a tecla.
  #4 (permalink)  
Antiguo 18/07/2010, 13:07
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Ayuda para cambiar la tecla pulsada

como ya explique, no hay forma que tu modelo funcione en otro navegador distinto a iexplorer porque las propiedades son de solo lectura. ahora, la pregunta es, ¿con qué propósito lo requieres así? si es para propósito de estética puede aplicarle el estilo text-transform:uppercase; al campo. sin embargo, el texto realmente permanece en minúsculas. solo te ocupas de transformalo a mayúsculas con toUpperCase antes de usarlo en cualquier otra parte de tu aplicación. si es el caso de que requieres el texto en mayúscula cuando se envie al servidor, opino que es mejor hacer la transformación desde el lenguaje servidor. de esta forma independientemente el usuario ingrese en mayúsculas o minúsculas -o si inhabilita javascript- obtienes los datos como los necesitas.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #5 (permalink)  
Antiguo 18/07/2010, 13:23
 
Fecha de Ingreso: julio-2010
Mensajes: 3
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: Ayuda para cambiar la tecla pulsada

Creo que esa forma me sera mas util. Gracias.
  #6 (permalink)  
Antiguo 18/07/2010, 17:04
Avatar de _cronos2
Colaborador
 
Fecha de Ingreso: junio-2010
Mensajes: 2.062
Antigüedad: 13 años, 10 meses
Puntos: 310
Respuesta: Ayuda para cambiar la tecla pulsada

Respecto a lo de onkeypress y onkeyup, usa los 2, así no se nota el cambio nada más que en el último.
Saludos (:

Etiquetas: tecla
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 08:52.