Mehrere Eingabezeilen in <input type = “text” />


403

Ich habe diesen Text in einer Form eingegeben:

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

Ich versuche, es dazu zu bringen, mehrere Eingabezeilen zu verwenden. Die Breite und Höhe machen das Feld größer, aber der Benutzer kann alle gewünschten Texte eingeben, die jedoch nur eine Zeile ausfüllen.

Wie mache ich die Eingabe eher wie ein Textbereich?

Antworten:


676

Sie müssen einen Textbereich verwenden, um eine mehrzeilige Behandlung zu erhalten.

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


62
Und das Textarea-Tag kann sich nicht selbst schließen. <textarea \>ist ungültig.
Alex H

29
@alexH unabhängig vom Textbereich, das ist der falsche Schrägstrich. Die ursprüngliche Antwort hatte sich selbst geschlossen, aber zumindest war es der richtige Schrägstrich.
Adam

4
@Adam Ich weiß, aber ich kann mich nicht mehr bearbeiten. Und ich möchte es nicht entfernen, weil meiner Meinung nach der selbstschließende Teil wichtig ist.
Alex H

4
Ja, textareaunterstützt das patternAttribut jedoch nicht . So verdammt.
Toddmo

1
Was mir daran nicht gefällt, ist, dass Sie in JQuery den Textbereichswert nicht mit festlegen können val(). Du musst appendes tun. :(
Malcolm Salvador

59

Es ist möglich, eine mehrzeilige Texteingabe zu erstellen, indem Sie ihr das word-break: break-word;Attribut geben. (Nur in Chrome getestet)


1
Vielen Dank! Ich bemerkte, dass Chrome mehrere Zeilen für Eingaben zuließ, was ich überhaupt nicht wollte, und der Grund war ein
Wortumbruch, der

3
Sieht in Chrome 39 und Safari 8.0.2 gut aus, in meinen kurzen Tests jedoch nicht in Firefox 34. :( jsfiddle.net/msybs9g7
Jeremy Wadhams

5
Ich denke, es funktioniert nicht mehr in Chrome.
Fifi


49

Verwenden Sie den Textbereich

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

Lassen Sie zwischen den öffnenden und schließenden Tags kein Leerzeichen. Andernfalls bleiben einige leere Zeilen oder Leerzeichen übrig.



7

Sie sollten verwenden textarea, um mehrzeilige Eingaben zu unterstützen.

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

1

Wenn Sie einen Textbereich mit automatischer Höhe benötigen , verwenden Sie Folgendes mit reinem 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

Die Eingabe unterstützt nicht mehrere Zeilen. Sie müssen einen Textbereich verwenden , um diese Funktion zu erreichen.

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

Denken Sie daran, dass die <textarea>den Wert innerhalb des Tags haben , nicht im Attribut:

<textarea>INITIAL VALUE GOES HERE</textarea>

Es kann nicht selbst geschlossen werden als: <textarea/>


Weitere Informationen finden Sie hier .


0

Wenn Sie React verwenden, kann Ihnen die Bibliothek material-ui.com helfen bei:

  <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

Verwenden Sie <div contenteditable="true">( gut unterstützt ) mit Speicherung zu <input type="hidden">.

HTML:

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

js (mit 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
    }
});
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.