textarea使用心得

作者一直以为textarea只可以作为多行文本的输入框,今天才知道原来textarea可以显示提示的文本内容。

在显示内容的时候,可以实现

(1)隐藏边框

(2)隐藏右下角的拉伸边框

(3)自适应高度

下面是代码,需要css、js配合

<style type="text/css">
textarea
    {
        width: 580px;
        resize:none;
        border:0px solid;
        line-height: 1.5em;
        color:#333;
        font-size: 14px;
        margin-top: 10px;
        padding: 0px;
        overflow-y:hidden;
    }
</style>
<script type="text/javascript">
    $(document).ready(function() {
        $(‘.statuses‘).each(function()
        {
             this.style.height = ‘auto‘;
             this.style.height = this.scrollHeight+‘px‘;
        });
    });
</script>
<textarea class="statuses" readonly >内容</textarea>

<textarea>输入框,也希望能自适应高度,就需要js配合,作者收集了一种方法

<script>
$.fn.extend({
    textareaAutoHeight: function(options) {
        this._options = {
            minHeight: 0,
            maxHeight: 1000
        }

        this.init = function() {
            for (var p in options) {
                this._options[p] = options[p];
            }
            if (this._options.minHeight == 0) {
                this._options.minHeight = parseFloat($(this).height());
            }
            for (var p in this._options) {
                if ($(this).attr(p) == null) {
                    $(this).attr(p, this._options[p]);
                }
            }
            $(this).keyup(this.resetHeight).change(this.resetHeight)
                .focus(this.resetHeight);
        }
        this.resetHeight = function() {
            var _minHeight = parseFloat($(this).attr("minHeight"));
            var _maxHeight = parseFloat($(this).attr("maxHeight"));

            if (!$.browser.msie) {
                $(this).height(0);
            }
            var h = parseFloat(this.scrollHeight);
            h = h < _minHeight ? _minHeight :
                h > _maxHeight ? _maxHeight : h;
            $(this).height(h).scrollTop(h);
            if (h >= _maxHeight) {
                $(this).css("overflow-y", "scroll");
            } else {
                $(this).css("overflow-y", "hidden");
            }
        }
        this.init();
    }
});
</script>
<textarea id="textarea1"></textarea>
<textarea id="textarea2"></textarea>
<textarea id="textarea3"></textarea>
<script>
    //最小高度和最大高度默认
    $("#textarea1").textareaAutoHeight();
    //最大高度为100px
    $("#textarea2").textareaAutoHeight({ maxHeight:100 });
    //最小高度为50px,最大高度为200px
    $("#textarea3").textareaAutoHeight({ minHeight:50, maxHeight:200 });
</script>

如果对jquery代码中的$.fn.extend含义不理解,网上的一片文章简要介绍了jquery扩展,作者在这里引用一下:

jQuery为开发插件提拱了两个方法,分别是:

jQuery.fn.extend();

jQuery.extend();

虽然 javascript 没有明确的类的概念,但是用类来理解它,会更方便。

jQuery便是一个封装得非常好的类,比如我们用 语句 $("#btn1") 会生成一个 jQuery类的实例。

jQuery.extend(object); 为jQuery类添加类方法,可以理解为添加静态方法。如:

jQuery.extend({

min: function(a, b) { return a < b ? a : b; },

max: function(a, b) { return a > b ? a : b; }

});

jQuery.min(2,3); //  2 jQuery.max(4,5); //  5

ObjectjQuery.extend( target, object1, [objectN])用一个或多个其他对象来扩展一个对象,返回被扩展的对象var settings = { validate: false, limit: 5, name: "foo" }; var options = { validate: true, name: "bar" }; jQuery.extend(settings, options);结果:settings == { validate: true, limit: 5, name: "bar" }

jQuery.fn.extend(object); 对jQuery.prototype进得扩展,就是为jQuery类添加“成员函数”。jQuery类的实例可以使用这个“成员函数”。

比如我们要开发一个插件,做一个特殊的编辑框,当它被点击时,便alert 当前编辑框里的内容。可以这么做:

$.fn.extend({          
     alertWhileClick:function() {            
           $(this).click(function(){                 
                  alert($(this).val());           
            });           
      }       
});       
$("#input1").alertWhileClick(); // 页面上为:

$("#input1") 为一个jQuery实例,当它调用成员方法 alertWhileClick后,便实现了扩展,每次被点击时它会先弹出目前编辑里的内容。

textarea使用心得,布布扣,bubuko.com

时间: 2024-10-27 09:29:50

textarea使用心得的相关文章

编写HTML和CSS几点心得

HTML代码优化 表单域用fieldset包起来,并用legend说明其用途(注意在css初始化的时候把fieldset的border设为0,把legend的display设为none) 每个input标签要用label来标注文本,并为每个input设id,用for关联. 为了提高搜索引擎友好性,要减少table标签使用.但是对于呈现二维数据,table却是首选,当然我们的优化方法是表格的标题用<caption></caption>包裹,表头用<thead></t

WGZX:javaScript 学习心得--2

转贴javascript心得(二) 标签: javascriptajaxweb开发htmlfirefox框架 2008-09-11 10:56 636人阅读 评论(0) 收藏 举报  分类: UI(21)  1,不要认为Struts已经过时了,也不要盲目的去追随JSF以及更新的MVC框架,在目前Struts仍旧 是最为优秀的MVC框架,尤其是后来与spring.hibernate(或者Ibatis)的结合,使得Struts的应用得到了进一步的发展,也许你 认为Webwork2.SpringMVC

jQuery_review之textarea滚动条往上往下的实现

众所周知,各种浏览器对于HTML.CSS以及原生JS的支持不尽相同.但是jQuery很好地封装了各种浏览器不同的实现,能够很好地解决跨浏览器的CSS问题.下面就是在review表单操作的时候的一个DEMO,这个如果添加动画效果会更好,jQuery所有的动画效果都是可以通过animate函数来实现,这里用到了一个CSS属性,scrollTop属性,是当前的滚动条距离上边距的而距离,此外,还在css中使用了-=和+=.记录在这个地方,方便后面做项目的时候查找使用. <%@ page language

Django form模块使用心得

最近用Django 写了一个网站,现在来分享一下对Django form 的一些心得. 一,创建一个表单 创建一个Form表单有两种方式: 第一种方式是继承于forms.Form,的一个子类,通过在form中选择你需要的类型来规定表单之 中字段的类型 Java代码   class ContactForm(forms.Form): subject = forms.CharField(max_length=100) message = forms.CharField(required=False)

关于Artdialog插件中获取内部表单元素值的使用心得

在开发中既需要artdialog插件的美观大方,又需要自定义功能,所以就出现了以下情况(废话不多说,转入正题) 前台代码: 1 <input type="button" class="ontest" value="免费询盘"/> 2 <div style="display:none;clear:both;"> 3 <table> 4 <tr> 5 <td>姓名:<

Iscroll4使用心得 (转)

最近做web app项目做到心血来潮,有太多经验想记录,太多细节想分享.今日把使用iscroll4 一直困扰了很久的问题研究解决了,很高兴决定把使用的心得写出来,方便大家参考,不要再走太多的弯路. iscroll4 是一款针对web app使用的滚动控件,它可以模拟原生IOS应用里的滚动列表操作,虽然插件不大但是效果十分好.是web app开发必备的控件之一. iscroll4官网 : http://cubiq.org/iscroll-4 为什么要用iscroll4 因为在IOS5之前,web

Delphi组件indy 10中IdTCPServer修正及SSL使用心得

indy 10终于随着Delphi2005发布了,不过indy套件在我的印象中总是复杂并且BUG不断,说实话,不是看在他一整套组件的面子上,我还是喜欢VCL原生的Socket组件,简洁,清晰.Indy9发展到了indy10几乎完全不兼容,可叹啊.言归正传.在使用IdTCPServer组件的时候发现了他的漏洞,他的OnConnec,OnExecute,OnDisconnect等事件是在其他线程中执行的,通常情况下这没有问题,但是在特殊的情况下会造成问题,如果其他部分的程序写得有问题就会出现漏洞.

Linux系统理解以及Linux系统学习心得

原创作品转载请注明出处  <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 作者:严哲璟 说一下我对Linux系统的理解 1.加载Linux内核准备:在加载基本输入输出模块(BIOS)之后,从磁盘的引导扇区读入操作系统的代码文件块到内存中,之后开始整个系统的初始化. 2.main.c的start_kernel函数是整个操作系统的入口,这也与Linux是基于C语言的特性相符,start_kernel具体做的动作很多

参加老男孩linux培训心得

参加老男孩linux培训心得 时间如白驹过隙,已经不知不觉来到老男孩培训已经三个月了.在这三个月中我渐渐得到了成长,专业技术成长,以及为人处事之道与思想的提高. 我一共就总结以下了三点     一.思想 在我刚来老男孩的时候,老师天天上课前讲一段思想,我当时不太明白,不赶紧上课,讲这干啥呢?而且老师早一点讲完,又可以招下一批学生了,老讲思想,这不是自断财路么?随着时间的流逝,渐渐的我悟懂了点.人在那里都可以学技术,但是学会了技术没有思想,一旦来了新事物,就会接受的很慢.尤其在互联网这个圈子里,软