2010-10-04 6 views

Répondre

64

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; 
} 
+3

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. –

+0

approche intéressante – mcgrailm

+0

+1, nice, je pensais aussi toutes sortes de solutions jquery/js, mais c'est mieux – Michel

13
$('input[type=text]').keyup(function() { 
    $(this).val($(this).val().toUpperCase()); 
}); 
+0

-1 Seuls les changements après la perte de mise au point, non pendant que vous tapez. http://jsfiddle.net/XJKgs/ – Greg

+0

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

+6

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

1

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

+0

Je peux utiliser onKeyUp – randomizertech

+0

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

5

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).

0

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); 
}) 
Questions connexes