项目作者: matejlednar

项目描述 :
Dynamic Textarea - automatic content height
高级语言: HTML
项目地址: git://github.com/matejlednar/My-textarea.git
创建时间: 2012-09-16T17:05:59Z
项目社区:https://github.com/matejlednar/My-textarea

开源协议:

下载


My-textarea

Dynamic Textarea - automatic content height

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

  1. function createDynamicTextarea() {
  2. this.style.color = "black";
  3. var content = this.value;
  4. var charsAtLine = this.cols * 1; // number conversion
  5. var lineChecker = content.split(/\n/g);
  6. var breaks = lineChecker;
  7. var lineStatus = true; // line is ok
  8. // check if exists \n
  9. if (breaks) {
  10. breaks = breaks.length;
  11. }
  12. else {
  13. breaks = 1; // default number of lines
  14. lineChecker = []; // default state
  15. lineChecker[0] = content; // process first line
  16. }
  17. for (var i = 0; i < lineChecker.length; i++) {
  18. var check = lineChecker[i];
  19. var length = check.length;
  20. if (length > charsAtLine) {
  21. var tmp = []; // creates new lines
  22. var leftOver = length % charsAtLine;
  23. for (var j = 0; j < Math.ceil(length / charsAtLine); j++) {
  24. if ((length - (j * charsAtLine)) > leftOver ) {
  25. tmp[j] = check.substring(j * charsAtLine, (j + 1) * charsAtLine) + "\n";
  26. }
  27. else {
  28. tmp[j] = check.substring((j * charsAtLine));
  29. this.rows = (this.rows * 1) - 1;
  30. }
  31. this.rows = (this.rows * 1) + 1;
  32. }
  33. lineChecker[i] = tmp.join("");
  34. this.value = lineChecker.join("\n");
  35. lineStatus = false; // line and content were updated
  36. }
  37. }
  38. if (lineStatus) {
  39. this.rows = breaks;
  40. }
  41. }

Web sites:

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