<input type =“ text” />に複数行の入力


403

私はこのテキストをフォームに入力しています:

<input type="text"
       cols="40" 
       rows="5" 
       style="width:200px; height:50px;" 
       name="Text1" 
       id="Text1" 
       value="" />

複数行の入力を取得するようにしています。幅と高さによってボックスは大きくなりますが、ユーザーは必要なすべてのテキストを入力できますが、1行しか埋められません。

入力をテキストエリアのようにするにはどうすればよいですか?

回答:


676

複数行を処理するには、textareaを使用する必要があります。

<textarea name="Text1" cols="40" rows="5"></textarea>


62
また、textareaタグは自己終了できません。<textarea \>無効です。
Alex H

29
@alexHは、textareaに関係なく、間違ったスラッシュです。元の答えは自己完結型でしたが、少なくとも正しいスラッシュでした。
アダム

4
@アダム私は知っているが、私はこれ以上編集できません。そして、私はそれを削除したくありません。私の意見では、自己閉鎖部分が重要だからです。
Alex H

4
はい。ただし、属性textareaはサポートされていませんpattern。すごい。
toddmo

1
これについて私が気に入らないのは、JQueryでは、を使用してtextarea値を設定できないことですval()。あなたはappendそれにしなければなりません。:(
マルコムサルバドール

59

word-break: break-word;属性を与えることで、テキスト入力を複数行にすることができます。(これはChromeでのみテストされています)


1
ありがとう!Chromeが複数行の入力を許可していることに気づきましたが、これはまったく望んでいませんでした。その理由は、body要素から継承された
改行でした

3
私の簡単なテストでは、Chrome 39とSafari 8.0.2では問題ありませんが、Firefox 34では問題ありません。:( jsfiddle.net/msybs9g7
Jeremy Wadhams 14

5
Chromeではもう動作していないと思います。
Fifi


49

テキストエリアを使用する

<textarea name="textarea" style="width:250px;height:150px;"></textarea>

開始タグと終了タグの間にスペースを入れないでくださいOr Elseこれにより、いくつかの空の行またはスペースが残ります。



7

textarea複数行の入力をサポートするには、を使用する必要があります。

<textarea rows="4" cols="50">
Here you can write some text to display in the textarea as the default text
</textarea>

1

自動高さのテキストエリアが必要な場合は、純粋なJavaScriptで以下を使用します。

function auto_height(elem) {  /* javascript */
    elem.style.height = "1px";
    elem.style.height = (elem.scrollHeight)+"px";
}
.auto_height { /* CSS */
  width: 100%;
}
<textarea rows="1" class="auto_height" oninput="auto_height(this)"></textarea>


0

入力は複数行をサポートしていません。その機能を実現するには、textarea使用する必要があります。

<textarea name="Text1"></textarea>

属性ではなく、タグ内<textarea>があることに注意してください。

<textarea>INITIAL VALUE GOES HERE</textarea>

次のように自己閉鎖することはできません。 <textarea/>


詳細については、を見て取り、これを


0

Reactを使用している場合、ライブラリmaterial-ui.comが次のことを支援します。

  <FormControl>
    <InputLabel htmlFor="textContract">{`textContract`}</InputLabel>
    <Input
      id="textContract"
      multiline
      rows="30"
      type="text"
      value={props.textContract}
      onChange={() => {}}
    />
  </FormControl>

https://material-ui.com/components/text-fields/#multiline


-2

収納に使う<div contenteditable="true">しっかりサポート)する<input type="hidden">

HTML:

<div id="multilineinput" contenteditable="true"></div>
<input type="hidden" id="detailsfield" name="detailsfield">

js(jQueryを使用)

$("#multilineinput").on('keyup',function(e) {   
    $("#detailsfield").val($(this).text()); //store content to input[type=hidden]
});
//optional - one line but wrap it
$("#multilineinput").on('keypress',function(e) {    
    if(e.which == 13) { //on enter
        e.preventDefault(); //disallow newlines     
        // here comes your code to submit
    }
});
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.