Si buscás que un campo de texto HTML se escriba y en él siempre el texto esté en mayusculas la colución es muy sencilla usando las bondades del CSS y con javascript:
Lo que obtenemos es que al tipear hola , se muestra HOLA pero cuando hagas el submit del form, el valor enviado será hola (en minusculas) para corregir esto, usamos la funcion javascript toUpperCase() asociada al evento onKeyup (al soltar la tecla presionada) que verdaderamente reemplaza el texto a mayúsculas y es enviado en mayúsculas.
Este es un aporte de un usuario, que es de tener en cuenta (muchas gracias!!)
El método por CSS es únicamente estético, es decir, sirve para mostrar «solo en pantalla» el texto en mayúsculas, pero en realidad no convierte en valor del input a mayúsculas.
El método por javascript si puede convertir el valor del input a mayúsculas tal y como lo mencionan, llamando a la función diseñada para ello en los métodos: onkeyup, onblur, onkeydown, onchange, etc., esa función si podría hacer la transformación de minúsculas a mayúsculas, pero si no está preparada para situaciones especiales como los espacios en blanco o números, llega a presentar algunos de los inconvenientes que mencionan en algunos comentarios.
Una forma en que puedes procesar la información que recibes para transformarla en mayúsculas al momento de almacenarla en tu base de datos podría ser utilizando la función de MySQL: UPPER(tu_campo) directamente en tu sentencia de MySQL, sea ésta un INSERT o UPDATE y estará actuando directamente sobre el campo o campos requeridos desde la propia funcionalidad de MySQL.
Por ejemplo:
INSERT INTO tu_tabla (‘tu_campo’) values(‘UPPER(«.$_POST[‘tu_campo’].»)’);
Otra forma podría ser que, si recibes la información desde un formulario, puedes procesar el REQUEST (sea mediante POST o GET) utilizando la función: strtoupper($tu_variable) de PHP y asocias esa variable que ya contiene la cadena en mayúsculas al campo que deseas guardar en tu base de datos mediante la sentencia de MySQL que hayas definido para el propósito.
Por ejemplo:
$tu_variable=strtoupper($_POST[‘tu_cadena_de_texto’]);
INSERT INTO tu_tabla (‘tu_campo’) values (‘».$tu_variable.»‘);
Cuando escribis algo y queres ir al inicio del texto con las flechas del teclado no te lo permite.
Eso ocurre en IE , intenta cambiar el evento onkeyup por onblur.
Creo que asi funciona
Gracias, yo solo probé con la propiedad CSS y me funcionó correctamente.
Saludos
esta bien todo funciona a la perfeccion gracias
Hola amigo, muy interesante; pero si yo lo que necesito es al contrario, que si por algún motivo copian en Mayúsculas me lo convierta siempre a minúsculas!!
Como lo puedo lograr?
Gracias,
cambia
style=»text-transform:uppercase;»
por
style=»text-transform:lowercase;»
Muchas gracias acaba de sacarme de un tremendo apuro, estamos optimazando sistemas en el servicio salud valdivia, chile, resulta q se trajo una plataforma con codigo muy antiguo y tenia desabilitado las minusculas en algunos campos, para las nuevos requerimientos muchos de estos campos deben implementar autocomplete tipo google, si usaba el teclado activado con mayuscula funcionaba bien pero al estar en minuscula no funka, ahora con este articulo force que la tomar como mayuscula y listo ahora funka de pelos…. gracias
Lo probé y no deja insertar espacios en blanco… :/ como se solucionaría ese inconveniente… muchas gracias por el aporte.. (Y)
Gracias me funciono bien. Simple y lo que buscaba.
Pero es que no entiendo porque he intentado demasiadas formas para eso de las mayusculas y NO aparecen las mayusculas en la Base de Datos..
Mi problema es este: yo inserto una palabra en un input, luego lo guardo y me voy a verificar en mysql y nada, todo en minusculas. y es que en la primer respuesta esta bien explicado pero no dice de como le pone en css???? solo dice que le pone en el input.. Necesito ya una respuesta de quien lo sepa bien.. Xfas.
si quiero poner la primera letra de una cadena en mayuscula y que se guarde como le debo hacer?
style=»text-transform:uppercase;» onkeyup=»javascript:this.value=this.value.toUpperCase();»
Es algo así pero eso es para todas mayusculas
nombre esto es exactamente lo que estaba buscando me ayudo mucho exelente aporte sin tantas vueltas solo fuistes al grano
Jessi:
El método por CSS es únicamente estético, es decir, sirve para mostrar «solo en pantalla» el texto en mayúsculas, pero en realidad no convierte en valor del input a mayúsculas.
El método por javascript si puede convertir el valor del input a mayúsculas tal y como lo mencionan, llamando a la función diseñada para ello en los métodos: onkeyup, onblur, onkeydown, onchange, etc., esa función si podría hacer la transformación de minúsculas a mayúsculas, pero si no está preparada para situaciones especiales como los espacios en blanco o números, llega a presentar algunos de los inconvenientes que mencionan en algunos comentarios.
Una forma en que puedes procesar la información que recibes para transformarla en mayúsculas al momento de almacenarla en tu base de datos podría ser utilizando la función de MySQL: UPPER(tu_campo) directamente en tu sentencia de MySQL, sea ésta un INSERT o UPDATE y estará actuando directamente sobre el campo o campos requeridos desde la propia funcionalidad de MySQL.
Por ejemplo:
INSERT INTO tu_tabla (‘tu_campo’) values(‘UPPER(«.$_POST[‘tu_campo’].»)’);
Otra forma podría ser que, si recibes la información desde un formulario, puedes procesar el REQUEST (sea mediante POST o GET) utilizando la función: strtoupper($tu_variable) de PHP y asocias esa variable que ya contiene la cadena en mayúsculas al campo que deseas guardar en tu base de datos mediante la sentencia de MySQL que hayas definido para el propósito.
Por ejemplo:
$tu_variable=strtoupper($_POST[‘tu_cadena_de_texto’]);
INSERT INTO tu_tabla (‘tu_campo’) values (‘».$tu_variable.»‘);
Ojalá esta información te sea útil.
y si solo quiero almacenar en la base de datos las primeras letras en mayusculas? se que en css utilizo el Capitalize pero para que tambien lo inserte a la base de datos como lo hago?
Muchas Gracias, me hacia falta para mis registros, ya que cada quien se registraba como le daba la gana, y era estéticamente mal visto en las impresiones de pantalla.
Me ha servido mucho.
Saludos: Guadalajara Jalisco México
Gracias, me aclaró el panorama.
Saludos.