根据内容指定textarea的行数。HTML、Javascript
嗨,我有一个功能,当用户在文本区域上键入内容时,它可以增加文本区域的行数,所以它可以正常工作。但是,当用户没有输入时,表单将文本带入textarea时,它不会增加行数,但只显示开始时定义的行数(rows=“1”),因为我需要它是最小的行数 我不知道要将什么Javascript(无JQuery)函数应用于textarea,以便在用户键入时以及表单向textarea显示多行文本时扩展行数,因此它将始终使用最少的行数 任何帮助都将不胜感激 请随意改变我所拥有的功能 例如根据内容指定textarea的行数。HTML、Javascript,javascript,html,textarea,Javascript,Html,Textarea,嗨,我有一个功能,当用户在文本区域上键入内容时,它可以增加文本区域的行数,所以它可以正常工作。但是,当用户没有输入时,表单将文本带入textarea时,它不会增加行数,但只显示开始时定义的行数(rows=“1”),因为我需要它是最小的行数 我不知道要将什么Javascript(无JQuery)函数应用于textarea,以便在用户键入时以及表单向textarea显示多行文本时扩展行数,因此它将始终使用最少的行数 任何帮助都将不胜感激 请随意改变我所拥有的功能 例如 函数changeTextAr
函数changeTextAreaLength(e){
var txtLength=e.value.length;
var numRows=0;
var arrNewLines=e.value.split(“\n”);
对于(var i=0;即cols-5){
numRows+=Math.floor(arrNewLines[i].length/e.cols)
}
}
如果(numRows<1){
e、 cols=(txtLength%e.cols)+1>=e.cols?((txtLength%e.cols)+1):e.cols;
}否则{
e、 cols=e.cols;
e、 行=numRows;
}
}
首先,将“功能”更改为“功能”
其次,从onkeyup属性中删除“javascript:”
第三,调用changeTextAreaLength(),但函数名为expandtextarea()
第四,您的函数表示expandtextarea(obj),但在函数中您指的是e,而不是obj
是的,keyup
几乎不足以捕捉输入内容变化的每一个方面。在进行脚本更改之前,还需要右键单击剪切/复制/粘贴、撤销/重做、拖放和拼写校正。
你没有任何希望抓住所有这些情况,因此如果你想对变化做出一般的实时反应,你别无选择,只能进行投票(例如使用间隔)。如果您想了解一种常见的情况,即只需输入比轮询器更快的延迟,您也可以添加keyup
一个字符计数的替代方案,你也可以考虑检查<代码>滚动高度>代码>,看看文本是否已经开始滚动。例如:
<textarea id="q" rows="4" cols="80">hello</textarea>
<script type="text/javascript">
function stretchy(element) {
var value= element.value;
function update() {
var h= element.scrollHeight;
if (h>element.offsetHeight || h<element.offsetHeight-48)
element.style.height= (h+24)+'px';
}
element.onkeyup= update;
setInterval(update, 1000);
update();
}
stretchy(document.getElementById('q'));
</script>
你好
功能弹性(元素){
var值=元素值;
函数更新(){
var h=元素高度;
如果(h>element.offsetHeight | | hy)您的代码充满错误,请更正
function
打字错误,将函数参数obj
更改为e
,并更改函数名称以匹配onkeyup
中的调用。谢谢,这已经是正确的,我很快就完成了,我没有意识到。
<textarea id="q" rows="4" cols="80">hello</textarea>
<script type="text/javascript">
function stretchy(element) {
var value= element.value;
function update() {
var h= element.scrollHeight;
if (h>element.offsetHeight || h<element.offsetHeight-48)
element.style.height= (h+24)+'px';
}
element.onkeyup= update;
setInterval(update, 1000);
update();
}
stretchy(document.getElementById('q'));
</script>