Ich interessiere mich nicht für eine bestimmte Technologie, es könnte JS, CSS oder sogar einige unstandardmäßige und böse HTML-Attribute sein. Ich möchte nur die input
größer werden, wenn der Benutzer über die rechte Grenze eingibt.Größe ändern Eingang zu seinem Inhalt
Antwort
Vielleicht hat jemand anderes hat eine bessere Art und Weise, aber man könnte versuchen, diese:
Beispiel:http://jsfiddle.net/aAueA/1/
var input = document.getElementsByTagName('input')[0];
input.onkeypress = input.onkeydown = function() {
this.size = (this.value.length > 10) ? this.value.length : 10;
};
Dies setzt es bei einer Mindestgröße von 10 und dehnt sich, wenn Sie über 10 gehen Figuren.
Wahrscheinlich funktioniert am besten mit einer Schrift mit fester Breite:
input {
font-family:Courier;
}
Lassen Sie den Browser, um die Berechnung der Breite tun durch ein div
mit contenteditable
Set true
verwenden.
<div class="pseudo-input" contenteditable="true">Resizes to my content!</div>
Es sollte keine Probleme sein mit Browser-Unterstützung http://caniuse.com/#feat=contenteditable
Sie können auch div Element erstellen, kopieren Sie Ihre Eingabemethode, um es und es zu verwenden, Abmessungen ist Eingabe zu ändern. (Ausgewählte Mehrfachverwendungen this solution).
var input = $('input'),
dummy = $('<div style="position:absolute; left: -1000%;">').appendTo('body');
['font-size', 'font-style', 'font-weight', 'font-family',
'line-height', 'text-transform', 'letter-spacing'].forEach(function(index) {
dummy.css(index, input.css(index));
});
input.on('input', function() {
dummy.html(this.value);
input.width(dummy.width());
});
UPD: besser vor zu verwenden, anstatt div Räume Größe zu folgen.
Danke für diese Lösung! Es berücksichtigt jedoch nicht aufeinanderfolgende Whitespace-Zeichen. Ich habe deinen Beitrag bearbeitet und "white-space: pre" zum div-Dummy hinzugefügt. Außerdem können einige Pixel zusätzliche Breite erforderlich sein, um zu vermeiden, dass das Caret verschwindet. – Kafoso
- 1. Nach einer div Größe zu seinem Inhalt
- 2. AutoFit WinForms RichTextBox zu seinem Inhalt
- 3. Wie ändert man die Größe von WebView entsprechend seinem Inhalt?
- 4. Ändern der Größe iframe seinen Inhalt
- 5. UIScrollView geheimnisvoll ändern Rahmen und Inhalt Größe
- 6. vhdl Rückmeldung der Ausgang eines Blocks zu seinem Eingang
- 7. Größe ändern Fenster Inhalt nicht in tkinter
- 8. Fit UIView Höhe zu seinem Inhalt mit AutoLayout
- 9. Bootstrap Ändern der Größe Eingang & Text (rechts den Eingangs)
- 10. hören zu ändern Eingang in Backbone
- 11. C# Größe automatisch ändern zu DataGridView Größe
- 12. Android Textview Inhalt Größe
- 13. Resize div basierend auf seinem Inhalt
- 14. Verwenden Sie Greasemonkey, um HTML-Tabellenzellenformat basierend auf seinem Inhalt zu ändern
- 15. wie die Größe eines Elements ändern, ohne seinen Inhalt zu ändern. css
- 16. Ionic2 ersetzen Komponentenauswahl mit seinem Inhalt
- 17. Größe-zu-Inhalt-Layout-Problem in WPF
- 18. Größe ändern Inhalt, wenn Schublade in MDL geöffnet ist
- 19. FancyBox Größe ändern Breite
- 20. Ändern der Größe von 'iframe' nachdem der Inhalt geladen ist
- 21. C - Array als Parameter übergeben und Größe und Inhalt ändern
- 22. Wie verbinde ich den Ausgang eines Moduls mit seinem Eingang?
- 23. bootstrap fluid grid: Eingang bricht aus seinem Container in ie7
- 24. Größe ändern Inhalt mit Fenster in FXML (JavaFX)
- 25. Scrollbar Größe der Seite ändern
- 26. Eingang Schließen selbst und sollte nicht Inhalt
- 27. HTML Größe ändern, um Bildschirmauflösung zu passen
- 28. erlaubt dem Benutzer Größe Trackbar zu ändern
- 29. Größe ändern, um Behälter vollständig zu füllen
- 30. Größe ändern Bitmap nur wenn zu groß
funktioniert es nicht für CJK-Zeichen. –
Konzise Version der Funktion: 'this.size = Math.max (this.value.length, 10);' – Meisner