首页 > Web开发 > 详细

Jquery实现<textarea>根据内容自动改变大小

时间:2014-10-15 14:22:23      阅读:347      评论:0      收藏:0      [点我收藏+]

<script type="text/javascript" src="${webRoot}/js/jquery.autogrow.textarea.js"></script>


<h3 >任职要求</h3>

<div> <textarea  style="outline:none;resize : none; BORDER-BOTTOM: 0px solid; BORDER-LEFT: 0px solid; BORDER-RIGHT: 0px solid; BORDER-TOP: 0px solid;overflow-y:hidden"  cols="120" rows="10" >${回显}</textarea></div>



jquery.autogrow.textarea.js如下:

/*

Auto-growing textareas; technique ripped from Facebook

(Textarea need set style "overflow:hidden" under IE)

*/

(function($) {

function times(string, number) {

  for (var i = 0, r = ‘‘; i < number; i ++) r += string;

  return r;

}

 

$.fn.autogrow = function(options) {

  this.filter(‘textarea‘).each(function() {

    this.timeoutId = null;

    var $this = $(this), minHeight = $this.height();

    var shadow = $(‘<div></div>‘).css({

      position:   ‘absolute‘,

      wordWrap:   ‘break-word‘,

      top:        0,

      left:       -9999,

      display:    ‘none‘,

      width:      $this.width(),

      fontSize:   $this.css(‘fontSize‘),

      fontFamily: $this.css(‘fontFamily‘),

      lineHeight: $this.css(‘lineHeight‘)

    }).appendTo(document.body);

 

    var update = function() {

      var val = this.value.replace(/</g, ‘&lt;‘)

        .replace(/>/g, ‘&gt;‘)

        .replace(/&/g, ‘&amp;‘)

        .replace(/\n$/, ‘<br/>&nbsp;‘)

        .replace(/\n/g, ‘<br/>‘)

        .replace(/ {2,}/g, function(space) { return times(‘&nbsp;‘, space.length -1) + ‘ ‘ });

      shadow.html(val);

      $(this).css(‘height‘, Math.max(shadow.height(), minHeight));

    }

     

    var updateTimeout = function() {

      clearTimeout(this.timeoutId);

      var that = this;

      this.timeoutId = setTimeout(function(){ update.apply(that); }, 100);

    };

 

    $(this).change(update).keyup(updateTimeout).keydown(updateTimeout);

    update.apply(this);

  });

  return this;

}

})(jQuery);



Jquery实现<textarea>根据内容自动改变大小

原文:http://9022575.blog.51cto.com/9012575/1564192

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!