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
Nie, przepraszam. <input type=text>
to pojedyncza linia z definicji. Zobacz dokument W3C Forms in HTML Documents:
text
Creates a single-line text input control.
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.
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>
.
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.
http://www.technoreply.com/autogrow-textarea-plugin-version-2-0/ – Four
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.
Nie tego chciał. – aehlke
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. –