javascript - 通过 vanilla js 更改行数

标签 javascript

这里我们在 html 文件中有一个 textarea

<textarea class="form-control" onClick="do_resize(this)" rows="10" 
cols="150" id ="textvalue" style="margin-top: 0px; margin-bottom: 
0px; height: 316px;">some text </textarea>

在头部上方我有下一种字符串:

function do_resize(textbox) {
    var maxrows=50;
    var txt=textbox.value;
    var cols=textbox.cols;

    var arraytxt=txt.split('\n');
    var rows=arraytxt.length;

    for (i=0;i<arraytxt.length;i++){
        rows+=parseInt(arraytxt[i].length/cols);
    }
    if (rows>maxrows) {
        document.getElementById("textvalue").rows = maxrows
    }else{
        document.getElementById("textvalue").rows = rows
    }
}

当我单击 y textrea 框的文本区域时,不会发生变化..我无法理解为什么。谁能帮我?

我想要这个: enter image description here

但我一直都有这个:

enter image description here

最佳答案

该问题是由于内联样式的高度造成的。我建议使用另一个事件而不是单击(在我的示例中我使用 Input Event - 当 textarea 元素的值更改时,同步触发 DOM 输入事件)

function do_resize(textbox) {
    var maxrows=50;
    var txt=textbox.value;
    var cols=textbox.cols;

    var arraytxt=txt.split('\n');
    var rows=arraytxt.length;
    for (i=0;i<arraytxt.length;i++){
        rows+=parseInt(arraytxt[i].length/cols);
    }
    if (rows>maxrows) {
        document.getElementById("textvalue").rows = maxrows
    }else{
        document.getElementById("textvalue").rows = rows
    }
}
document.getElementById("textvalue").addEventListener('input', function (evt) {
    do_resize(this);
});
<textarea class="form-control" rows="10" 
cols="150" id ="textvalue" style="margin-top: 0px; margin-bottom: 
0px;">some text </textarea>

关于javascript - 通过 vanilla js 更改行数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49427635/

相关文章:

javascript - 在动态单选按钮中仅选择一个

javascript - ngclass 在页面加载时自动替换我的 css 设置

javascript - 使用 JavaScript 进行自动化单元测试

javascript - 如何格式化txt文件并导入jquery以在变量内使用

javascript - AngularJS 日期过滤器与 $watchGroup

javascript - 在 Azure 函数中获取设备孪生信息?

javascript - 我有这些 Kendo 单选按钮,它们仅选择第一个单选按钮值

javascript - 使用 jquery 获取选定的单选按钮

javascript - 在 foreach 方法中更新数组 Angular

javascript - 页面加载时自动提交表单