Wie stellen Sie das Textfeld automatisch auf Großbuchstaben ein?
Lesezeit: 6 Minuten
ybc126
Ich verwende das folgende Stilattribut, um die Benutzereingabe auf Großbuchstaben zu setzen, damit der Benutzer beispielsweise mit der Eingabe in das Textfeld beginnt railwaydann sollte es in Großbuchstaben wie geändert werden RAILWAY ohne dass der Benutzer die Feststelltaste drücken muss.
Dies ist der Code, den ich für die Eingabe verwende:
<input type = "text" class = "normal" name = "Name" size = "20" maxlength = "20"> <img src="https://stackoverflow.com/questions/11100041/images/tickmark.gif" border="0" style="text-transform:uppercase"/>
Aber ich erhalte nicht die gewünschte Ausgabe, wenn ich dieses Attribut verwende.
Wie unten erwähnt, achten Sie darauf, Leerzeichen zwischen = und Werten “text” zu haben.
– Jonathan Safa
15. September 2017 um 5:08 Uhr
Freifall
Sie haben die style Attribut auf der <img> Tag statt der <input>.
Es ist auch keine gute Idee, die Leerzeichen zwischen dem Attributnamen und dem Wert zu haben …
Bitte beachten Sie, dass diese Transformation ist rein visuell und ändert nicht den Text, der in POST gesendet wird.
HINWEIS: Wenn Sie die einstellen möchten tatsächlicher Eingabewert in Großbuchstaben umzuwandeln und sicherzustellen, dass der vom Formular übermittelte Text in Großbuchstaben geschrieben ist, können Sie den folgenden Code verwenden:
Beachten Sie, dass, wenn Sie diese Daten per POST senden, sie so gesendet werden, wie Sie sie eingegeben haben, und nicht so, wie sie auf dem Bildschirm angezeigt werden.
– Vincent Poirier
28. Juli 2015 um 19:04 Uhr
@freefaller, es hat alle Eingaben in Großbuchstaben geändert, aber das Einfügen in mysql ist Kleinbuchstaben, wie man Großbuchstaben ändert!
– David JawHpan
11. November 2015 um 4:45 Uhr
@ David, siehe den vorherigen Kommentar. Die Transformation ist rein visuell. Es ändert nicht die Groß-/Kleinschreibung des zugrunde liegenden Textes, der an den Server zurückgesendet wird. Wenn Sie den Text in Großbuchstaben speichern möchten, müssen Sie ihn vor dem Speichern auf dem Server umwandeln
– Freifall
11. November 2015 um 17:20 Uhr
Dies ist keine vollständige Lösung, da der Platzhalter jetzt in Großbuchstaben geschrieben wird (was in den meisten Fällen nicht der Fall sein sollte). Es gibt keinen anderen Weg als die Verwendung von JavaScript.
– Tomerico
22. März 2016 um 19:05 Uhr
Zukünftige Leser, die möchten, dass die Änderungen am Wert und nicht nur visuell vorgenommen werden, finden Sie in der Antwort von Burak Tokak.
– Dinei
31. Mai 2017 um 20:15 Uhr
Jehuda Schwartz
Ich denke, die robusteste Lösung, die sicherstellt, dass es in Großbuchstaben gepostet wird, ist die Verwendung der oninput-Methode inline wie:
Einige Leute haben sich darüber beschwert, dass der Cursor beim Bearbeiten des Werts ans Ende springt, also sollte diese leicht erweiterte Version das beheben
Die Antworten mit der text-transformation:uppercase styling sendet beim Senden keine Daten in Großbuchstaben an den Server – was Sie vielleicht erwarten. Du kannst stattdessen so etwas tun:
Könnte man gebrauchen das input Veranstaltung Anstatt von keydown und loswerden setTimeout Problemumgehung.
– Dinei
31. Mai 2017 um 20:12 Uhr
Das funktioniert, aber wie vermeidet man den hässlichen Sekundenbruchteil-Kleinbuchstaben-zu-Großbuchstaben-Sprung?
– Jonathan Safa
15. September 2017 um 5:07 Uhr
Gehen Sie mit der Idee des “Eingabeereignisses” um und fügen Sie dieses Attribut zu der hinzu input Element scheint gut zu funktionieren: oninput="this.value = this.value.toUpperCase()"
– Tommy Stanton
22. September 2017 um 1:04 Uhr
@JonathanSafa Verwenden Sie dies zusätzlich zu der text-transform:uppercase css-Style-Lösung oben, damit die Eingabe immer in Großbuchstaben erscheint
– minik
28. Dezember 2017 um 22:21 Uhr
Wenn ein Benutzer bestehenden Text bearbeitet und den Cursor an eine andere Stelle als das Ende setzt, springt der Cursor mit jedem eingegebenen Zeichen an das Ende. Gibt es eine Möglichkeit, die Cursorposition beizubehalten und den Text in Großbuchstaben umzuwandeln?
– Mike Wodarczyk
7. September 2018 um 16:57 Uhr
Das Problem bei der ersten Antwort ist, dass der Platzhalter ebenfalls in Großbuchstaben geschrieben wird. Falls Sie möchten, dass die Eingabe NUR in Großbuchstaben erfolgt, verwenden Sie die folgende Lösung.
Um nur nicht leere Eingabeelemente auszuwählen, setzen Sie das erforderliche Attribut auf das Element:
Anstelle von image setzen Sie style tag auf input, da Sie auf Input und nicht auf image schreiben
Dadurch wird aber auch der Platzhaltertext großgeschrieben.
– Kazim Zaidi
26. Februar 2016 um 15:23 Uhr
Mukund Thakkar
Legen Sie den folgenden Stil fest, um alle Textfelder auf Großbuchstaben zu setzen
input {text-transform: uppercase;}
Dadurch wird aber auch der Platzhaltertext großgeschrieben.
– Kazim Zaidi
26. Februar 2016 um 15:23 Uhr
Gaurischer Gangwar
Verwendung von CSS text-transform: uppercase ändert nicht die eigentliche Eingabe, sondern nur ihr Aussehen. Wenn Sie die Eingabedaten an einen Server senden, werden sie immer noch in Kleinbuchstaben geschrieben oder wie auch immer Sie sie eingegeben haben. Um den Eingabewert tatsächlich umzuwandeln, müssen Sie den folgenden JavaScript-Code hinzufügen:
Hier verwende ich toLocaleUpperCase() umwandeln input Wert in Großbuchstaben. Es funktioniert gut, bis Sie Ihre Eingabe bearbeiten müssen, zB wenn Sie ABCXYZ eingegeben haben und jetzt versuchen, es in ABCLMNXYZ zu ändern, wird es zu ABCLXYZMN, weil der Cursor nach jeder Eingabe an das Ende springt.
Um dieses Springen des Cursors zu überwinden, müssen wir folgende Änderungen an unserer Funktion vornehmen:
document.querySelector("input").addEventListener("input", function(event) {
var input = event.target;
var start = input.selectionStart;
var end = input.selectionEnd;
input.value = input.value.toLocaleUpperCase();
input.setSelectionRange(start, end);
})
<input>
Jetzt funktioniert alles wie erwartet, aber wenn Sie einen langsamen PC haben, sehen Sie möglicherweise, dass Text während der Eingabe von Kleinbuchstaben zu Großbuchstaben springt. Wenn Sie das ärgert, ist dies die Zeit, CSS zu verwenden, bewerben Sie sich input: {text-transform: uppercase;} in die CSS-Datei und alles wird gut.
13346800cookie-checkWie stellen Sie das Textfeld automatisch auf Großbuchstaben ein?yes
Wie unten erwähnt, achten Sie darauf, Leerzeichen zwischen = und Werten “text” zu haben.
– Jonathan Safa
15. September 2017 um 5:08 Uhr