2009-08-24 6 views
16

Gibt es eine Möglichkeit, ein <input /> -Feld in HTML zu erhalten, Zeilen zu umbrechen, wenn der Text länger als das Feld ist, das CSS verwendet? Ich möchte nicht <textarea /> verwenden, da ich verhindern möchte, dass Benutzer harte Zeilenumbrüche eingeben, indem Sie die Eingabetaste drücken.<input> mehrzeilig über CSS

Antwort

25

Nein, tut mir leid. <input type=text> ist per Definition eine einzelne Zeile. Siehe das W3C Dokument Forms in HTML Documents:

text 
    Creates a single-line text input control. 
3

Mit Dojos Dijit TextArea- Form Kontrolle, basierend off TextArea-, können Sie ein Eingabefeld haben, die als eine einzige Zeile beginnt und sich ausdehnt, wenn der Benutzer sie hinzufügt.

Siehe its documentation.

3

Sie können nicht tun, was Sie wollen, mit CSS allein, aber Sie könnten JavaScript verwenden, um zu verhindern, dass der Benutzer Zeilenumbrüche in einem <textarea> Feld eingeben.

+0

Das wollte er nicht. – aehlke

+6

Er möchte eine Eingabe, die umbrochen wird. Das klingt für mich wie ein Textfeld. Er wollte einfach nicht, dass der Benutzer Zeilenumbrüche eingeben kann, was Sie mit JavaScript tun könnten. –

0

Am besten verwenden Sie eine TextArea (mit AutoGrow-Funktionen, wenn Sie möchten), und entfernen Sie dann die neuen Zeilen, wenn das Formular abgeschickt wird. Mit PHP wäre es etwa so:

$text = str_replace(array("\n","\r"),'',$_POST['text_field']); 

Dies hätte den gewünschten Effekt der Blockierung Newline-Zeichen. Andere haben darauf hingewiesen, dass es nicht wirklich möglich ist, in einem Eingabefeld mehrzeilige Eingaben zu erhalten.

+0

http://www.technoreply.com/autogrow-textarea-plugin-version-2-0/ – Four

3

Schauen Sie sich diese, http://www.echoecho.com/htmlforms08.htm

Die Wrap-Optionen sind die heikelsten Teil von Textbereichen. Wenn Sie Wrap deaktivieren, wird der Text als eine lange Sequenz von Text ohne Zeilenumbrüche behandelt. Wenn Sie es als virtuell festlegen, wird der Text auf Ihrer Seite so angezeigt, als ob er Zeilenumbrüche erkannt hätte. Wenn das Formular jedoch gesendet wird, sind die Zeilenumbrüche deaktiviert. Wenn Sie es auf physisch festlegen, wird der Text genau so gesendet, wie er auf dem Bildschirm angezeigt wird - Zeilenumbrüche eingeschlossen.