Quiero hacer que todo lo que escribo en un campo de texto sea en mayúsculas. Mientras escribo, no después de perder el enfoque.¿Cómo hacer que todo en un campo de texto sea mayúsculas/mayúsculas?
¿Cómo hago esto usando jQuery?
Quiero hacer que todo lo que escribo en un campo de texto sea en mayúsculas. Mientras escribo, no después de perder el enfoque.¿Cómo hacer que todo en un campo de texto sea mayúsculas/mayúsculas?
¿Cómo hago esto usando jQuery?
Yo usaría CSS para esto.
Simplemente agregue text-transform: uppercase
a su estilo, y luego en el lado del servidor puede convertirlo a mayúsculas.
input {
text-transform: uppercase;
}
$('input[type=text]').keyup(function() {
$(this).val($(this).val().toUpperCase());
});
-1 Sólo los cambios después de perder el foco, no se mientras escribes http://jsfiddle.net/XJKgs/ – Greg
El punto válido, se debe combinar con la solución de Brandon para cambiarlo adecuadamente del lado del cliente. Cambió ligeramente el código para actualizar al presionar las teclas. – Gazler
Quité mi downvote porque ahora hace lo que pide el OP. Pero si fuera un usuario de un sitio web que hizo este cambio de "configuración", ** buscaría a la persona responsable **. Ver las letras cambiar mientras escribe es desorientador, y tratar de volver a editar lo que escribió es frustrante porque el cursor se mueve hacia el final. http://jsfiddle.net/HPapz/1/ – Greg
Es posible que tenga que utilizar la combinación de estos.
utilizando el estilo text-transform solo representa el tipo en mayúsculas, aunque el valor puede ser minúsculas.
El javascript sólo cambiar el texto actual a superior una vez que los cambios en el campo o se pierde el enfoque
puede utilizar jQuery de gazler o simplemente en línea Javascript
por ejemplo, onblur = 'javascript: this.value = this.value.toUpperCase();'
Esto significa que el valor del texto aparecerá en mayúscula y en realidad será mayúscula cuando el valor cambie/el control pierda el foco.
HTH Sam
puedo usar onKeyUp – randomizertech
El único problema con onblur es que si el usuario simplemente pulsa la tecla Intro, por ejemplo, para enviar un formulario, el texto no se verá en mayúscula. – Joseph
Uso oninput='this.value=this.value.toUpperCase();
Este evento es sólo para estos casos, es despedido después de la entrada del usuario (pulsación de tecla), pero antes de actualizar (valor de visualización), por lo que con este texto escrito no parpadeará durante la conversión, y el valor también es correcto (no es como usar solo el estilo para alterar la visualización sin cambiar los datos reales).
Para aprovechar @ respuesta de Gazler, una solución mejorada que teclas mejores tiradores modificadoras (asumiendo que tiene un marcador de posición de mayúsculas y minúsculas y no se puede establecer text-transform: uppercase;
):
$('.search-input input[type=text]').keyup(function() {
var v = $(this).val();
var u = v.toUpperCase();
if(v != u) $(this).val(u);
})
Puede agregar una clase, o este estilo, programáticamente con jQuery si lo desea, pero esto es probablemente lo que necesita. –
enfoque interesante – mcgrailm
+1, bueno, yo también estaba pensando en todo tipo de soluciones jquery/js, pero esto es mejor – Michel