2009-08-24 9 views
16

テキストがCSSを使用するフィールドよりも長い場合は、<input /> -fieldをHTMLで改行する方法はありますか?私は<textarea />を使用したくないので、ユーザーがEnterを押して改行を入力しないようにしたい。<input> CSSを使用したマルチライン対応

答えて

25

いいえ、申し訳ありません。 <input type=text>は1行で定義されています。 W3C文書Forms in HTML Documents参照:TextAreaのをオフに基づいて、DojoのDijitにTextAreaのフォームコントロールを使用して

text 
    Creates a single-line text input control. 
3

を、あなたは、単一の線として始まり、ユーザーがそれに追加して拡張する入力フィールドを持つことができます。

its documentationを参照してください。

3

CSSだけではできないが、JavaScriptを使用して<textarea>フィールドに改行を入力できないようにすることができます。

+0

これは彼が望むものではありません。 – aehlke

+6

彼はラップする入力を望んでいます。それは私のテキストエリアのように聞こえる。彼はJavaScriptを使って行ブレークを入力できるようにしたくなかっただけです。 –

0

あなたの最善の策は、あなたが好きな場合は自動伸長機能を備えたテキストエリアを使用し、フォームが送信されるときに新しい行を取り除くことです。 phpを使用すると、次のようになります。

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

これは改行文字をブロックする効果があります。他の人が指摘しているように、入力フィールドに複数行の入力を得ることは実際には不可能です。

+0

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

3

これを見て、 http://www.echoecho.com/htmlforms08.htm

ラップオプションは、テキストエリアの中で最も難しい部分です。 ラップをオフにすると、テキストは改行なしの1つの長いテキストシーケンスとして処理されます。 仮想に設定すると、改行を認識したようにページにテキストが表示されますが、フォームが送信されると改行はオフになります。 これを物理に設定すると、テキストは画面に表示されているとおりに正確に送信されます - ラインブレークが含まれています。

関連する問題