我在一个表单中输入了这个文本:

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

我试图让它接受多行输入。宽度和高度使框更大,但用户可以输入所有(s)他想要的文本,但它只填充一行。

我如何使输入更像一个文本区域?


当前回答

通过赋予word-break: break-word,可以使文本输入多行;属性。(仅在Chrome中测试)

其他回答

您需要使用文本区域来获得多行处理。

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

使用textarea

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

在开始和结束标签之间不要留下任何空格,否则会留下一些空行或空格。

检查:

http://www.w3.org/TR/html401/interact/forms.html#h-17.7

TEXTAREA元素创建了一个 多行文本输入控件

通过赋予word-break: break-word,可以使文本输入多行;属性。(仅在Chrome中测试)

如果你正在使用React,你可以使用第三方UI库MUI。它有一个自定义的私有<Input>元素,带有多行选项。

正如LSE注释的那样,最终它被呈现为<textarea>。

  <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