J'utilise l'attribut de style suivant pour définir l'entrée utilisateur en majuscules de sorte que lorsque l'utilisateur commence à taper dans la zone de texte par exemple railway
, il doit être modifié en majuscules comme RAILWAY
sans que l'utilisateur n'ait à appuyer sur le bouton de verrouillage des majuscules .
Voici le code que j'utilise pour l'entrée:
<input type = "text" class = "normal" name = "Name" size = "20" maxlength = "20"> <img src="../images/tickmark.gif" border="0" style='text-transform:uppercase'/>
Mais je n'obtiens pas le résultat souhaité en utilisant cet attribut.
Réponses:
Vous avez mis l'
style
attribut sur la<img>
balise, au lieu du<input>
.Ce n'est pas non plus une bonne idée d'avoir les espaces entre le nom de l'attribut et la valeur ...
Veuillez noter que cette transformation est purement visuelle et ne modifie pas le texte envoyé dans POST.
la source
Je pense que la solution la plus robuste qui garantira qu'il est affiché en majuscules est d'utiliser la méthode oninput en ligne comme:
ÉDITER
Certaines personnes se sont plaints du fait que le curseur saute à la fin lors de la modification de la valeur, donc cette version légèrement étendue devrait résoudre ce problème.
la source
Les réponses avec le
text-transformation:uppercase
style n'enverront pas de données en majuscules au serveur lors de la soumission - ce à quoi vous pouvez vous attendre. Vous pouvez faire quelque chose comme ça à la place:Pour votre entrée HTML, utilisez onkeydown:
Dans votre JavaScript:
Avec la
upperCaseF()
fonction à chaque pression de touche vers le bas, la valeur de l'entrée va se transformer en sa forme majuscule.J'ai également ajouté un délai de 1 ms pour que le bloc de code de fonction se déclenche après l'événement keydown.
la source
input
événement au lieu dekeydown
et se débarrasser de lasetTimeout
solution de contournement.input
élément semble bien fonctionner:oninput="this.value = this.value.toUpperCase()"
text-transform:uppercase
solution de style css ci-dessus pour que l'entrée apparaisse toujours en majusculesLe problème avec la première réponse est que l'espace réservé sera également en majuscules. Dans le cas où vous souhaitez SEULEMENT l'entrée en majuscules, utilisez la solution suivante.
Afin de sélectionner uniquement l'élément d'entrée non vide, placez l'attribut requis sur l'élément:
Maintenant, pour le sélectionner, utilisez le
:valid
pseudo-élément:De cette façon, vous ne mettrez en majuscules que les caractères saisis.
la source
essayer
Au lieu de l'image, mettez une balise de style en entrée car vous écrivez sur l'entrée et non sur l'image
la source
Définir le style suivant pour définir toute la zone de texte en majuscules
la source
Le problème avec le style CSS est qu'il ne change pas les données, et si vous ne voulez pas avoir de fonction JS, essayez ...
<input onkeyup="this.value = this.value.toUpperCase()" />
seul, vous verrez le champ capitaliser sur keyup, il peut donc être souhaitable de le combiner avec les
style='text-transform:uppercase'
autres suggérés.la source
L'utilisation de CSS
text-transform: uppercase
ne change pas l'entrée réelle mais change seulement son apparence. Si vous envoyez les données d'entrée à un serveur, elles seront toujours en minuscules ou quelle que soit la manière dont vous les avez entrées. Pour réellement transformer la valeur d'entrée, vous devez ajouter du code javascript comme ci-dessous:Ici, j'utilise
toLocaleUpperCase()
pour convertirinput
valeur en majuscules. Cela fonctionne bien jusqu'à ce que vous ayez besoin de modifier ce que vous avez entré, par exemple si vous avez entré ABCXYZ et que vous essayez maintenant de le changer en ABCLMNXYZ, il deviendra ABCLXYZMN car après chaque entrée, le curseur saute à la fin.Pour surmonter ce saut du curseur, nous devons apporter les modifications suivantes à notre fonction:
Maintenant, tout fonctionne comme prévu, mais si vous avez un PC lent, vous pouvez voir le texte passer des minuscules aux majuscules au fur et à mesure que vous tapez. Si cela vous ennuie, c'est le moment d'utiliser CSS, appliquez
input: {text-transform: uppercase;}
au fichier CSS et tout ira bien.la source
Cela affichera à la fois l'entrée en majuscules et enverra les données d'entrée par courrier en majuscules.
HTML
JavaScript
la source
Comme personne ne l'a suggéré:
Si vous souhaitez utiliser la solution CSS avec des espaces réservés en minuscules, il vous suffit de styliser les espaces réservés séparément. Divisez les 2 styles d'espace réservé pour la compatibilité avec IE.
la source
Essayez la solution ci-dessous, cela prendra également soin lorsqu'un utilisateur n'entre que des espaces vides dans le champ de saisie au premier index.
la source
la source