Answers:
通过赋予word-break: break-word;
属性,可以制作多行文本输入。(仅在Chrome中对此进行测试)
你不能 在撰写本文时,唯一设计为多行的HTML表单元素是<textarea>
。
如果您需要具有自动高度的textarea,请在纯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>
输入不支持多行。您需要使用文本区域来实现该功能。
<textarea name="Text1"></textarea>
记住标记中
<textarea>
有值,而不是属性中:
<textarea>INITIAL VALUE GOES HERE</textarea>
它不能自我关闭,因为:
<textarea/>
有关更多信息,请参阅此。
如果您使用的是React,库material-ui.com可以帮助您:
<FormControl>
<InputLabel htmlFor="textContract">{`textContract`}</InputLabel>
<Input
id="textContract"
multiline
rows="30"
type="text"
value={props.textContract}
onChange={() => {}}
/>
</FormControl>
使用<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
}
});
<textarea \>
是无效的。