2009-08-24 14 views
16

Czy istnieje sposób uzyskania pola <input /> w języku HTML, aby zawijać linie, jeśli tekst jest dłuższy niż pole za pomocą CSS? Nie chcę używać <textarea />, ponieważ chcę, aby użytkownicy nie wprowadzali przerw w linii, naciskając klawisz enter.<input> Możliwość obsługi wielu linii przez CSS

Odpowiedz

3

Korzystanie Dijit kontrolę formularz TextArea dojo, oparty off TextArea można mieć pole tekstowe, które rozpoczyna się w jednej linii i rozszerza się, gdy użytkownik dodaje do niego.

Zobacz its documentation.

3

Nie możesz zrobić tego, czego chcesz, używając samego CSS, ale możesz użyć JavaScript, aby uniemożliwić użytkownikowi wprowadzanie podziałów linii w polu <textarea>.

+0

Nie tego chciał. – aehlke

+6

Chce wejścia, które się zawija. To brzmi jak textarea dla mnie. Po prostu nie chciał, aby użytkownik mógł wprowadzać podział na wiersze, co można zrobić za pomocą JavaScript. –

0

Najlepiej jest użyć textarea (z możliwościami autogrow, jeśli chcesz), a następnie rozebrać nowe wiersze po przesłaniu formularza. Używanie php będzie mniej więcej takie:

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

Będzie to miało pożądany efekt blokowania znaków nowej linii. Jak inni zauważyli, nie jest możliwe uzyskanie wielowierszowego wejścia w polu wejściowym.

+0

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

3

Spójrz na to, http://www.echoecho.com/htmlforms08.htm

Opcje oblewania to najbardziej skomplikowana część obszarów tekstowych. Po włączeniu zwinięcia tekst jest traktowany jako jedna długa sekwencja tekstu bez łamania linii. Jeśli ustawisz na wirtualny tekst pojawi się na Twojej stronie tak, jakby rozpoznał podział na linie - ale po przesłaniu formularza linie podziału są wyłączone. Jeśli ustawisz go na fizyczny, tekst zostanie przesłany dokładnie tak, jak jest wyświetlany na ekranie - włączone są linie podziału.

Powiązane problemy