Skip to content

matejlednar/My-textarea

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 

Repository files navigation

My-textarea

Dynamic Textarea - automatic content height

Author: PhDr. Matej Lednár, PhD. (c) 2012

     function createDynamicTextarea() {
        this.style.color = "black";
        var content = this.value;
        var charsAtLine = this.cols  * 1; // number conversion
        var lineChecker = content.split(/\n/g);
        var breaks = lineChecker;
        var lineStatus = true;  // line is ok

        // check if exists \n
        if (breaks) {
          breaks = breaks.length;
        }
        else {
          breaks = 1;               // default number of lines
          lineChecker = [];         // default state
          lineChecker[0] = content; // process first line
        }

        for (var i = 0; i < lineChecker.length; i++) {
          var check = lineChecker[i];
          var length = check.length;

          if (length > charsAtLine) {
            var tmp = []; // creates new lines
            var leftOver = length % charsAtLine;
            for (var j = 0; j < Math.ceil(length / charsAtLine); j++) {
              if ((length - (j * charsAtLine)) > leftOver ) {
                tmp[j] = check.substring(j * charsAtLine, (j + 1) * charsAtLine) + "\n";
              }
              else {
                tmp[j] = check.substring((j * charsAtLine));
                this.rows = (this.rows * 1) - 1;
              }
              this.rows = (this.rows * 1) + 1;
            }
            lineChecker[i] = tmp.join("");
            this.value = lineChecker.join("\n");            
            lineStatus = false;   // line and content were updated
          }
        }
        if (lineStatus) {
          this.rows = breaks;
        }
      }

Web sites:

  • work.mldgroup.com
  • how-to.mldgroup.com