Je veux que tout ce que j'écris dans un champ de texte soit en majuscules. Comme j'écris, pas après avoir perdu le focus.Comment faire pour que tout dans un champ de texte soit en majuscules/majuscules?
Comment faire cela en utilisant jQuery?
Je veux que tout ce que j'écris dans un champ de texte soit en majuscules. Comme j'écris, pas après avoir perdu le focus.Comment faire pour que tout dans un champ de texte soit en majuscules/majuscules?
Comment faire cela en utilisant jQuery?
Je voudrais utiliser CSS pour cela. Ajoutez simplement text-transform: uppercase
à votre style, puis sur le côté serveur, vous pouvez le convertir en majuscules.
input {
text-transform: uppercase;
}
$('input[type=text]').keyup(function() {
$(this).val($(this).val().toUpperCase());
});
-1 Seuls les changements après la perte de mise au point, non pendant que vous tapez. http://jsfiddle.net/XJKgs/ – Greg
Un point valide, devrait être combiné avec la solution de Brandon pour changer correctement le côté client. Changement du code pour mettre à jour à la pression. – Gazler
J'ai supprimé mon downvote parce qu'il fait maintenant ce que l'OP demande. Mais si j'étais un utilisateur d'un site Web qui a fait ce "changement de clé", ** je traquerais la personne responsable **. Voir les lettres changer pendant que vous tapez est désorientant, et essayer de revenir en arrière pour éditer ce que vous avez tapé est frustrant parce que le curseur continue de se déplacer jusqu'à la fin. http://jsfiddle.net/HPapz/1/ – Greg
Vous devrez peut-être utiliser une combinaison de ceux-ci. L'utilisation du style de transformation de texte rend seulement le type en majuscule, bien que la valeur puisse être minuscule.
Le javascript ne changera texte courant supérieur une fois que les changements sur le terrain ou mise au point est perdu
vous pouvez utiliser jquery de gazler ou simplement javascript ligne
par exemple onblur = 'javascript: this.value = this.value.toUpperCase();' Cela signifie que la valeur du texte apparaîtra en majuscules et sera mise en majuscule lorsque la valeur change/le contrôle perd le focus.
HTH Sam
Je peux utiliser onKeyUp – randomizertech
Le problème avec onblur est que si l'utilisateur appuie simplement sur la touche Entrée, par exemple pour envoyer un formulaire, le texte ne sera pas mis en majuscules. – Joseph
Utilisez oninput='this.value=this.value.toUpperCase();
Cet événement est juste pour de tels cas, est tiré après l'entrée utilisateur (appui sur la touche), mais avant la mise à jour (valeur l'affichage), donc avec ce texte tapé ne clignote lors de la conversion, et la valeur est également correcte (pas comme utiliser uniquement le style pour modifier l'affichage sans changer les données réelles).
Pour construire sur @ la réponse de Gazler, une solution améliorée que les touches de modification de meilleures poignées (en supposant que vous avez un espace réservé de cas mixte et ne peut pas mettre text-transform: uppercase;
):
$('.search-input input[type=text]').keyup(function() {
var v = $(this).val();
var u = v.toUpperCase();
if(v != u) $(this).val(u);
})
Vous pouvez ajouter une classe, ou ce style, par programmation avec jQuery si vous le souhaitez, mais c'est probablement ce dont vous avez besoin. –
approche intéressante – mcgrailm
+1, nice, je pensais aussi toutes sortes de solutions jquery/js, mais c'est mieux – Michel