Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 以编程方式增加textArea的大小_Javascript_Jquery_Html - Fatal编程技术网

Javascript 以编程方式增加textArea的大小

Javascript 以编程方式增加textArea的大小,javascript,jquery,html,Javascript,Jquery,Html,我可以根据行数增加textarea的大小,但如果我没有按enter键,只需输入文本,则它不起作用,textarea的大小也不起作用。看下面的小提琴 $(“textarea”)。在(“keyup”上,函数($event){ this.rows=(this.value.split(“\n”).length | 1); var thisTextArea=$event.currentTarget; 如果(thisTextArea.value.split(“\n”).length>5){ thisTex

我可以根据行数增加textarea的大小,但如果我没有按enter键,只需输入文本,则它不起作用,textarea的大小也不起作用。看下面的小提琴

$(“textarea”)。在(“keyup”上,函数($event){
this.rows=(this.value.split(“\n”).length | 1);
var thisTextArea=$event.currentTarget;
如果(thisTextArea.value.split(“\n”).length>5){
thisTextArea.rows=(thisTextArea.value.split(“\n”).length);
$(thisTextArea).css(“溢出”、“隐藏”);
如果(thisTextArea.rows>15){
$(thisTextArea).css(“溢出-y”,“滚动”);
}
}
否则{
thisTextArea.rows=6;
$(thisTextArea).css(“溢出”、“隐藏”);
}
});

$(文档).ready(函数(){
$('textarea').elastic();
});

演示-弹性

填充文本区域以使其增长
当你用文本填充它时,这个文本区域将会增长。只需在其中再键入几个单词,您就会看到。

$(文档).ready(函数(){
$('textarea').elastic();
});

演示-弹性

填充文本区域以使其增长
当你用文本填充它时,这个文本区域将会增长。只需在其中再键入几个单词,您就会看到。

更新html

<textarea rows="5" cols="15"></textarea>

使用这个js代码段

$("textarea").on("keyup", function($event) {
    var textarea = $(this);
    var text = textarea.val();
    var lines = text.split(/\r*\n/);
    var cols = textarea.attr('cols');
    var TOTAL_LINES = 0;
    for (var i = 0; i < lines.length; i++) {
        TOTAL_LINES += Math.ceil(lines[i].length/cols);
    }    
    console.log(TOTAL_LINES);
    if (TOTAL_LINES > 5) {
        textarea.attr('rows', TOTAL_LINES);
        textarea.css("overflow-y","hidden");
        if (TOTAL_LINES > 15) {
            textarea.css("overflow-y","scroll");
        }
    } else {
       textarea.attr('rows', 6);
        textarea.css("overflow-y","hidden");
    }
});
$(“textarea”)。在(“keyup”上,函数($event){
var textarea=$(此值);
var text=textarea.val();
变量行=text.split(/\r*\n/);
var cols=textarea.attr('cols');
var总行数=0;
对于(变量i=0;i5){
textarea.attr('行',总行数);
css(“overflow-y”、“hidden”);
如果(总行数>15){
css(“overflow-y”、“scroll”);
}
}否则{
textarea.attr('rows',6);
css(“overflow-y”、“hidden”);
}
});
更新html

<textarea rows="5" cols="15"></textarea>

使用这个js代码段

$("textarea").on("keyup", function($event) {
    var textarea = $(this);
    var text = textarea.val();
    var lines = text.split(/\r*\n/);
    var cols = textarea.attr('cols');
    var TOTAL_LINES = 0;
    for (var i = 0; i < lines.length; i++) {
        TOTAL_LINES += Math.ceil(lines[i].length/cols);
    }    
    console.log(TOTAL_LINES);
    if (TOTAL_LINES > 5) {
        textarea.attr('rows', TOTAL_LINES);
        textarea.css("overflow-y","hidden");
        if (TOTAL_LINES > 15) {
            textarea.css("overflow-y","scroll");
        }
    } else {
       textarea.attr('rows', 6);
        textarea.css("overflow-y","hidden");
    }
});
$(“textarea”)。在(“keyup”上,函数($event){
var textarea=$(此值);
var text=textarea.val();
变量行=text.split(/\r*\n/);
var cols=textarea.attr('cols');
var总行数=0;
对于(变量i=0;i5){
textarea.attr('行',总行数);
css(“overflow-y”、“hidden”);
如果(总行数>15){
css(“overflow-y”、“scroll”);
}
}否则{
textarea.attr('rows',6);
css(“overflow-y”、“hidden”);
}
});
html

<textarea rows="5"class='autoExpand'></textarea>

html

<textarea rows="5"class='autoExpand'></textarea>

我终于这样做了。 请参阅以下链接

$("textarea").on("keyup",function($event) {
                 var textarea = $event.currentTarget;

    if (textarea.scrollHeight > 305) {
            textarea.style.height = "1px";
    textarea.style.height = (3+textarea.scrollHeight)+"px";
        $(textarea).css("overflow-y","scroll");

    }
    else if (textarea.scrollHeight > 105){
        $(textarea).css("overflow-y","hidden");
        textarea.style.height = "1px";
        textarea.style.height = (3+textarea.scrollHeight)+"px";
    }
                 });
$("textarea").on("focus",function($event) {
    var textarea = $event.currentTarget;
        if (textarea.scrollHeight > 105) {
            //textarea.style.height = textarea.scrollHeight;
            $(textarea).css("height",textarea.scrollHeight);
            if(textarea.scrollHeight > 305) {
            $(textarea).css("overflow-y","scroll");
            }
        }
    $( "textarea" ).unbind("focus");

});

我终于这样做了。 请参阅以下链接

$("textarea").on("keyup",function($event) {
                 var textarea = $event.currentTarget;

    if (textarea.scrollHeight > 305) {
            textarea.style.height = "1px";
    textarea.style.height = (3+textarea.scrollHeight)+"px";
        $(textarea).css("overflow-y","scroll");

    }
    else if (textarea.scrollHeight > 105){
        $(textarea).css("overflow-y","hidden");
        textarea.style.height = "1px";
        textarea.style.height = (3+textarea.scrollHeight)+"px";
    }
                 });
$("textarea").on("focus",function($event) {
    var textarea = $event.currentTarget;
        if (textarea.scrollHeight > 105) {
            //textarea.style.height = textarea.scrollHeight;
            $(textarea).css("height",textarea.scrollHeight);
            if(textarea.scrollHeight > 305) {
            $(textarea).css("overflow-y","scroll");
            }
        }
    $( "textarea" ).unbind("focus");

});


我不想放额外的js文件。你为什么不简单地使用
div
或其他属性为
contenteditable='true'
的标记?我不想放额外的js文件。你为什么不简单地使用
div
或其他属性为
contenteditable='true'
的标记?它显示滚动,文本正在向上移动而不是文本区域正在扩展。请下载并运行它,因为脚本未加载它正在显示滚动,文本正在向上移动而不是文本区域正在扩展。请下载并运行它,因为当我们在不按Enter键的情况下输入一长行文字时,脚本不会加载相同的问题。请再次检查链接并按文本更长的时间。已测试按至少10行它正在计算滚动高度并根据它按行增加高度。$(文档)。一(当我们在不按Enter键的情况下输入一个长行文字时,它是打开的或一个?相同的问题。它不起作用。再次检查链接并按文本更长的时间。它已测试按至少10行它正在计算滚动高度并根据它逐行增加高度。$(文档)。一个(它是开的还是一个?问题是我们不能计算自动换行符。要解决这个问题,你需要将cols属性设置为textarea,并将textarea的Device charecters设置为列数。检查这个提琴,它工作正常,但当行数超过时第一行变为隐藏,并再次自动显示。如果字符太大,它将继续显示。)在小于列数的字符中…?问题是我们无法计算自动换行。要解决此问题,您需要将cols属性设置为textarea,并将textarea的字符数设置为列数。检查此小提琴是否正常工作,但当行数超过时,第一行变为隐藏,并再次自动显示。如果字符太大,它包含的字符数小于列数。。。?