Diego Di Camillo

Base de tips para problemas comunes de los desarrolladores.



Hacer que un input tenga texto en uppercase o mayusculas

03Jun10

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.»‘);

Archivado en: CSS, General, HTML   |  17 Comentarios

17 comentarios a “Hacer que un input tenga texto en uppercase o mayusculas”  

Feed de este artículo URI para Trackbacks
  1. 1 Fabian en Ago 30th, 2010 dijo:

    Cuando escribis algo y queres ir al inicio del texto con las flechas del teclado no te lo permite.

  2. 2 ddicami en Ago 30th, 2010 dijo:

    Eso ocurre en IE , intenta cambiar el evento onkeyup por onblur.
    Creo que asi funciona

  3. 3 wmanny en Dic 21st, 2012 dijo:

    Gracias, yo solo probé con la propiedad CSS y me funcionó correctamente.

    Saludos

  4. 4 darckwin en Ene 13th, 2013 dijo:

    esta bien todo funciona a la perfeccion gracias

  5. 5 Manuel en Ago 6th, 2013 dijo:

    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,

  6. 6 ddicami en Ago 6th, 2013 dijo:

    cambia

    style=»text-transform:uppercase;»

    por

    style=»text-transform:lowercase;»

  7. 7 Cristian Sotomayor en Oct 3rd, 2013 dijo:

    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

  8. 8 renato en Nov 24th, 2013 dijo:

    Lo probé y no deja insertar espacios en blanco… :/ como se solucionaría ese inconveniente… muchas gracias por el aporte.. (Y)

  9. 9 Tavo en Ene 3rd, 2016 dijo:

    Gracias me funciono bien. Simple y lo que buscaba.

  10. 10 Jessi en Abr 26th, 2016 dijo:

    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.

  11. 11 Uriel en Jun 22nd, 2016 dijo:

    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

  12. 12 luis baena en Ago 3rd, 2016 dijo:

    nombre esto es exactamente lo que estaba buscando me ayudo mucho exelente aporte sin tantas vueltas solo fuistes al grano

  13. 13 Sergio Ville en Ago 29th, 2016 dijo:

    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.

  14. 14 Andrea en Nov 26th, 2016 dijo:

    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?

  15. 15 Jesus de la Maza en Dic 1st, 2016 dijo:

    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

  16. 16 Jorge en Dic 12th, 2016 dijo:

    Gracias, me aclaró el panorama.

    Saludos.

  1. 1 CPR classes in NJ
Enviando tu Comentario
Por favor espera

Deja una respuesta

Hubo un error con tu comentario, por favor intenta de nuevo.



Comparte este artículo

  • Menéame  Menéalo
  • del.icio.us  Enviar a Del.icio.us
  • Mi Yahoo!  Agregar a Mi Web 2.0
  • Furl  Guardar en Furl
 


wordpressk2openswitchyukei.netfeedwordpress