# \[JS\]Expand Rows in Textbox

**URL:** <https://forum.kirupa.com/t/js-expand-rows-in-textbox/208365>\
**Category:** open source\
**Created:** [November 27, 2006, 11:13pm UTC](https://forum.kirupa.com/t/js-expand-rows-in-textbox/208365 "2006-11-27T23:13:47Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![Templarian](https://yyz1.discourse-cdn.com/flex011/user_avatar/forum.kirupa.com/templarian/32/7152_2.png) [@Templarian](https://forum.kirupa.com/u/Templarian)\
**Post date:** [November 27, 2006, 11:13pm UTC](https://forum.kirupa.com/t/js-expand-rows-in-textbox/208365/1 "2006-11-27T23:13:47Z")

</div>

I don’t really need crit (and im sure there are better ways to code this… probably could think of a few ways), I just found out a better way to do what I wanted to do and don’t need my form to autoexpand.

(btw this implies the font in the textbox is courier (the 8 pixels thick thingy).

```auto

var intTemp;
function autoexpand(){
    if (intTemp != document.form.textboxname.value.length){
        intTemp = document.form.textboxname.value.length
        var strTemp = "";
        var strLineCounter = 0;
        var strCharCounter = 0;
        for (var i = 0; i < document.form.textboxname.value.length; i++)
        {
            var strChar = document.form.textboxname.value.substring(i, i + 1);
            if (strChar == '
')
            {
                strTemp += strChar;
                strCharCounter = 1;
                strLineCounter += 1;
            }
            else if (strCharCounter == Math.floor(document.form.textboxname.clientWidth/8))
            {
                strTemp += '
' + strChar;
                strCharCounter = 1;
                strLineCounter += 1;
            }
            else
            {
                strTemp += strChar;
                strCharCounter ++;
            }
        }
        if(strLineCounter < 5){
            document.form.textboxname.rows = 5;
        }
        else
        {
            document.form.textboxname.rows = strLineCounter+1;
        }
        clearInterval(id);
    }
}
id = setInterval('autoexpand()', 100);

```

//edit, although if you do spend the time to make it better/redo please feel free to paste the source.
