Wie man HTML-text-Feld readonly, aber auch scrollbare?
Ich habe ein HTML-Textfeld ist, das ich gemacht habe, READONLY. Sache ist, obwohl, sagen, dass das Feld nur eine Breite von 100 Pixeln. Und ich habe einen Satz, zum Beispiel, dass nicht angezeigt, dass 100 Pixel. Da es READONLY ist es nicht Scrollbar ist.
In anderen Worten. Wie kann ich noch das Feld ist nicht editierbar. Aber auch so, dass die längeren Saiten, die nicht passen in den Bereich, angezeigt werden?
Dank!
- Was meinst du wie Feld? jsfiddle.net/hbKBD Zum Beispiel textbox Scrollbar)))
- ja genau wie dein Beispiel. Aber schauen Sie, sicher, die Sache ist nicht editierbar, und das ist großartig. Aber ein Stück von Ihr string wird immer abgeschnitten, weil das textfield ist zu kurz, um die Anzeige des gesamten Strings. Wie kann man das beheben? In deinem Beispiel kann ich nicht scrollen etc.
- Sie Blättern können Sie es mit der Maus... wählen Sie einfach den text
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gibt es einige JavaScript, die Sie verwenden können. Es sei denn, Sie sind mit einem Rahmen, es würde hübsch Aussehen, hässlich, obwohl, weil es ist nicht trivial.
JavaScript
keypress
Ereignis wird ausgelöst, wenn eine Taste gedrückt wird, aber es wird nicht ausgelöst, für die cursor-Tasten (aus irgendeinem Grund). Das ist Recht praktisch, denn wenn Sie JavaScript verwenden, um zu verhindern, dass die Standard-Aktion, Sie sind sortiert.Also im Idealfall wäre dies, was Sie brauchen:
Einfach kopieren und einfügen und es sollte funktionieren, im Firefox oder Chrome. Der code ist standards konform, aber Internet Explorer nicht. Also das funktioniert nicht im IE (außer vielleicht die Versionen 9 und 10... da nicht so sicher). Auch die
classList.add
bit funktioniert nicht in alle, aber ein paar von den neuesten Browser-Versionen. Müssen wir also ändern dieser bits. Zuerst werden wir die Anpassung derreadOnlyKeypressHandler
Funktion, weilevent.preventDefault()
funktioniert nicht bei jedem browser.Nun ändern
classList
bit.Dummerweise addEventListener nicht unterstützt in IE, so dass Sie brauchen, um eine Funktion zu handhaben, separat (fügen Sie es oberhalb der for-Schleife)
Dann ändern Sie die Ereignisse hinzufügen bit:
Und geben Sie die Dokument-Funktion laden Sie einen Namen anstelle von aufrufen in
addEventListener
:Und nennen es am Ende
Und sobald Sie das getan haben, sollte es funktionieren in allen Browsern.
Nun einfach über CSS die
readonly
Klasse zu nehmen, die Gliederung in Browsern, die zeigen eins:Nicht die textarea readonly. Dies ist, was ich getan habe:
,dann im JavaScript mit jQuery:
Die CSS-Eigenschaft
overflow
setzt das scroll-Verhalten, und zum Beispieloverflow: auto
nur die Anzeige der scrollbars, wenn der Inhalt erstreckt sich über das Gebiet. Mitoverflow: scroll
erhalten Sie die scrollbars-jedes mal.Definieren Sie die Höhe für Ihre div-container, der text, und verwenden Sie overflow:auto so etwas wie unter css-code.
Verwenden Sie eine Textarea statt eines input-Textfeldes. U cant hinzufügen scrollen Sie zu einem textfield
<textarea cols="50" rows="5" ></textarea>
wenn http://jsfiddle.net/msmailbox/jBGne/ dies ist, was Sie benötigt, dann können Sie versuchen, diese mit div.
mit css