Mein Ziel ist es, das jQuery-Ereignis .keyup () zu verwenden, um eingegebene Kleinbuchstaben in Großbuchstaben umzuwandeln.
Wie kann ich das erreichen?
Normales Javascript:
var input = document.getElementById('inputID');
input.onkeyup = function(){
this.value = this.value.toUpperCase();
}
Javascript mit jQuery:
$('#inputID').keyup(function(){
this.value = this.value.toUpperCase();
});
Das einzige Problem bei der fliegenden Änderung der Benutzereingaben ist, wie unangenehm es für den Endbenutzer aussehen kann.
Sie sollten stattdessen den folgenden CSS-Stil auf das Eingabefeld anwenden:
text-transform: uppercase;
Auf diese Weise erscheint der eingegebene Text immer in Großbuchstaben. Der einzige Nachteil ist, dass es sich um eine rein visuelle Änderung handelt - der Wert des Eingabesteuerelements (im Code dahinter betrachtet) behält den Fall bei, in dem er ursprünglich eingegeben wurde.
Zwischendurch einfach umgehen, erzwingen Sie die Eingabe val () .toUpperCase (); dann hast du das Beste aus beiden Welten.
$(document).ready(function()
{
$('#yourtext').keyup(function()
{
$(this).val($(this).val().toUpperCase());
});
});
<textarea id="yourtext" rows="5" cols="20"></textarea>
Angenommen, Ihr HTML-Code lautet:
<input type="text" id="txtMyText" />
dann sollte die jquery sein:
$('#txtMyText').keyup(function() {
this.value = this.value.toUpperCase();
});
Da Platzhaltertext immer häufiger unterstützt wird, kann dieses Update relevant sein.
Mein Problem bei den anderen Antworten ist, dass das Anwenden von text-transform: uppercase
css auch den Platzhaltertext in Großbuchstaben schreibt, den wir nicht wollten.
Um dies zu umgehen, war es ein wenig knifflig, aber den Nettoeffekt wert.
Erstellen Sie die Textklasse in Großbuchstaben.
.text-uppercase {
text-transform:uppercase;
}
Binden Sie an das keydownevent.
Das Binden an das Keydown-Ereignis war wichtig, damit die Klasse hinzugefügt wird, bevor der Charakter sichtbar ist. Beim Binden an Tastendruck oder Tastenkombination wurde das kurze Flackern des Kleinbuchstaben bewirkt.
$('input').on('keydown', function(e)
{
// Visually Friendly Auto-Uppercase
var $this = $(this);
// 1. Length of 1, hitting backspace, remove class.
if ($this.val().length == 1 && e.which == 8)
{
$this.removeClass('text-uppercase');
}
// 2. Length of 0, hitting character, add class.
if ($this.val().length == 0 && e.which >= 65 && e.which <= 90)
{
$this.addClass('text-uppercase');
}
});
Beim Senden an den Server in Großbuchstaben umwandeln.
var myValue = this.value.toUpperCase();
YMMV können Sie feststellen, dass das Ausschneiden von Text oder das Löschen von Text mit der Löschtaste die Klasse möglicherweise nicht entfernen. Sie können den Keydown ändern, um auch das Löschzeichen zu berücksichtigen.
Wenn Sie nur über ein Zeichen verfügen und sich Ihre aktuelle Cursorposition auf Position 0 befindet, wird durch Drücken der Rücktaste die Textumwandlungsklasse entfernt. Da sich die Cursorposition jedoch auf Position 0 befindet, wird das einzelne Zeichen nicht gelöscht.
Dies würde etwas mehr Arbeit erfordern, um auch die aktuelle Zeichenposition zu überprüfen und festzustellen, ob die Lösch- oder Rücktaste das verbleibende einzige Zeichen tatsächlich löscht.
Obwohl es den Aufwand wert war, dies für unseren häufigsten Anwendungsfall scheinbar und optisch ansprechend zu gestalten, war es nicht nötig, darüber hinauszugehen. :)
Die obigen Antworten sind ziemlich gut, ich wollte nur eine kurze Form dafür hinzufügen
<input type="text" name="input_text" onKeyUP="this.value = this.value.toUpperCase();">
var inputs = $('#foo');
inputs.each(function(){
this.style.textTransform = 'uppercase';
})
.keyup(function(){
this.value = this.value.toUpperCase();
});
Ich benutze diesen Code erfolgreich, um Großbuchstaben zu ändern
$(document).ready(function(){
$('#kode').keyup(function()
{
$(this).val($(this).val().toUpperCase());
});
});
</script>
in Ihrem HTML-Tag Bootstraps
<div class="form-group">
<label class="control-label col-md-3">Kode</label>
<div class="col-md-9 col-sm-9 col-xs-12">
<input name="kode" placeholder="Kode matakul" id="kode" class="form-control col-md-7 col-xs-12" type="text" required="required" maxlength="15">
<span class="fa fa-user form-control-feedback right" aria-hidden="true"></span>
</div>
</div>
Das hat bei mir funktioniert
jQuery(document).ready(function(){
jQuery('input').keyup(function() {
this.value = this.value.toLocaleUpperCase();
});
jQuery('textarea').keyup(function() {
this.value = this.value.toLocaleUpperCase();
});
});