Jquery成长和收缩textarea

时间:2009-06-12 20:25:36

标签: jquery

当你按下Enter键时,我正试图让textarea增长,当你完成删除一行时我会缩小。换句话说,textarea仍然足够大,可以包含文本内部,而文本正在编辑中。

除非有人知道更好的方法,否则现在我正在使用jquery检测按键。在输入印刷机上使textarea变大是相当容易的,但是当你删除回车时我对如何缩小它感到很茫然。

你如何(最好用jquery)检测在textarea中删除回车的时间?

2 个答案:

答案 0 :(得分:0)

尝试使用TextArea缩放器插件:

http://plugins.jquery.com/project/TextAreaResizer

答案 1 :(得分:0)

        var computedElement = window.getComputedStyle($(element)[0]),
        paddingTop = parseInt(computedElement.paddingTop),
        paddingBottom = parseInt(computedElement.paddingBottom),
        borderBottom = parseInt(computedElement.borderBottom),
        borderTop = parseInt(computedElement.borderTop),
        lineHeight = parseInt(computedElement.lineHeight),
        outerHeight = paddingBottom + paddingTop + borderTop + borderBottom;

        var resize = function() {
          //height:auto resets the height to row=1 to get the scrollHeight without white space
          $(element).css('height', 'auto');
          $(element).height($(element)[0].scrollHeight - outerHeight);
        }

        //first resize to set the existing text
        $timeout(function(){
          if($(element).val().length) {
            resize();
          }
        });

        //resize on keyup and keydown 
        $(element).on('keydown keyup', function() {
          $timeout(function(){
            resize();
          });
        });