テキストがCSSを使用してフィールドより長い場合、HTMLの<input />
-フィールドを取得して行を折り返す方法はありますか?ユーザーがEnterキーを押してハード改行を入力するのを避けたいので、<textarea />
を使用したくありません。
いいえ、ごめんなさい。 <input type=text>
は定義上1行です。 W3Cドキュメントを参照してください HTMLドキュメントのフォーム :
text
Creates a single-line text input control.
TextAreaに基づくDojoのDijitTextAreaフォームコントロールを使用すると、1行で始まり、ユーザーが追加すると拡大する入力フィールドを作成できます。
そのドキュメント を参照してください。
CSSだけではやりたいことはできませんが、JavaScriptを使用して、ユーザーが<textarea>
フィールドに改行を入力できないようにすることができます。
これを見てください、 http://www.echoecho.com/htmlforms08.htm
折り返しオプションは、テキスト領域の最も難しい部分です。折り返しをオフにすると、テキストは改行のない1つの長いテキストシーケンスとして処理されます。仮想に設定すると、テキストは改行を認識したかのようにページに表示されますが、フォームが送信されると、改行はオフになります。物理に設定すると、テキストは画面に表示されているとおりに送信されます。改行が含まれます。
最善の策は、textarea(必要に応じて自動拡張機能付き)を使用し、フォームが送信されたときに新しい行を削除することです。 phpを使用すると、次のようになります。
$text = str_replace(array("\n","\r"),'',$_POST['text_field']);
これには、改行文字をブロックするという望ましい効果があります。他の人が指摘しているように、入力フィールドで複数行の入力を取得することは実際には不可能です。