`
菊花一斤
  • 浏览: 19681 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

js实现限制textarea字符输入数量的代码实例

阅读更多
1. 通过本文demo演示,可以很明显的看到原生js的window.onload=function(){…}与jquery 的$(document).ready(function(){…});的区别,这也是我为什么不用样式定义初始状态下隐藏第二三个显示区的原因;
2. 本文只是选项卡一个原型实现,若要用于同一页面多个选项卡,变量已集中到函数头部,可自行封装成函数;
3. 请不要问如何实现更酷很炫的效果,请自已思考添加效果;
4. 不希望大家用这个效果时只是机械的复制粘贴,思考加实践,然后消化成自己的

    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>
    <style>
    /*demo css教程*/
    fieldset{border:1px solid #ccc;width:720px}
    fieldset legend{ background:#a40000; color:#fff;text-align:center; padding:0 8px; margin-left:25px}
    fieldset form{background:#eee; border:1px solid #ccc;margin:10px; padding:10px 10px 0}
    fieldset form textarea{width:670px; height:60px; border:1px solid #ccc; line-height:25px; padding:3px;overflow:hidden;}
    fieldset form textarea:focus{border:1px solid #a40000}
    fieldset form p{height:30px; margin:2px 0;*margin:3px 0 3px -5px}
    fieldset form p span{padding-left:8px}
    fieldset form p span em{font-style:normal; font-weight:bolder; color:#047; padding:0 3px}
    fieldset form p span font{color:blue; font-size:10px}
    </style>
    <script>
    /*******************************
     * @author blog http://www.3ppt.com/
     * @2011.04.07
     * @可自由转载及使用,但请注明版权归属
     *******************************/
    //原生网页特效版本
    window.onload=function(){
     var js=document.getelementbyid('js');//获取文本域
     var info=document.getelementsbytagname('p')[0];//获取要插入提示信息的元素
     var submit=info.getelementsbytagname('input')[0];//获取提交按钮
     var max=js.getattribute('maxlength');//获取限制输入的最大长度
     var tips教程=document.createelement('span');//新建一个提示span
     var val,cur,count,warn;
     submit.disabled=true;//默认不可提交
     tips.innerhtml='你还可以输入<em>'+max+'</em>个字符<font>[不区分中英文字符数]</font>';
     if(max){
      js.onkeyup=js.onchange=function(){
       submit.disabled=false;
       if(info.lastchild.nodename!='span') info.appendchild(tips);//避免每次弹起都会插入一条提示信息
       count=info.getelementsbytagname('em')[0];//www.3ppt.com根据输入数字变换区
       warn=info.getelementsbytagname('font')[0];//副标题
       val=this.value;
       cur=val.length;
    //   for(var i=0;i<val.length; i++){        //此循环是用来判断中英文字符的,但并不建议那样做
    //    if(val.charcodeat(i)>255) cur+=1;
    //   }
       if(cur==0){ //当默认值长度为0时,可输入数为默认maxlength值,此时不可提交
        count.innerhtml = max;
        submit.disabled=true;
        warn.innerhtml='不区分中英文字符数';
       }else if (cur < max) {//当默认值小于限制数时,可输入数为max-cur
        count.innerhtml = max - cur;
        warn.innerhtml='不区分中英文字符数';
       }else{
        count.innerhtml = 0;//当默认值大于等于限制数时,插入一条提示信息并截取限制数内的值
        warn.innerhtml='不可再输入!';
        this.value=val.substring(0,max);//此处前面的this.value不能用变量val,它们不再是同一个值
       }
      }
     }
    }

    //基于jquery版本
    $(function(){
     var _area=$('textarea#jq');
     var _info=_area.next();
     var _submit=_info.find(':submit');
     var _max=_area.attr('maxlength');
     var _val,_cur,_count,_warn;
     _submit.attr('disabled',true);
     _area.bind('keyup change',function(){ //绑定keyup和change事件
      _submit.attr('disabled',false);
      if(_info.find('span').size()<1){//避免每次弹起都会插入一条提示信息
       _info.append('<span>你还可以输入<em>'+ _max +'</em>个字符<font>[不区分中英文字符数]</font></span>');
      }
      _val=$(this).val();
      _cur=_val.length;
      _count=_info.find('em');
      _warn=_info.find('font');
    
      if(_cur==0){//当默认值长度为0时,www.3ppt.com可输入数为默认maxlength值,此时不可提交
       _count.text(_max);
       _submit.attr('disabled',true);
      }else if(_cur<_max){//当默认值小于限制数时,可输入数为max-cur
       _count.text(_max-_cur);
       _warn.text('不区分中英文字符数');
      }else{//当默认值大于等于限制数时,插入一条提示信息并截取限制数内的值
       _count.text(0);
       _warn.text('不可再输入!');
       $(this).val(_val.substring(0,_max));
      }
     });
    });
    </script>

    <div id="demo">
    <fieldset>
     <legend>原生javascript版本</legend>
     <form name="jsform" action="#" method="get">
      <textarea name="js" id="js" maxlength="10"></textarea>
      <p><input type="submit" value="提 交" /></p>
     </form>
    </fieldset>
    <p style="color:#fff">&raquo;&nbsp;我是用来隔行的,别理我^-^</p>
    <!--//原生javascript版本-->
    <fieldset>
     <legend>基于jquery版本</legend>
     <form name="jqform" action="#" method="get">
      <textarea name="jq" id="jq" maxlength="10"></textarea>
      <p><input type="submit" value="提 交" /></p>
     </form>
    </fieldset>
    <!--//基于jquery版本-->
    </div>
分享到:
评论

相关推荐

    JS简单限制textarea内输入字符数量的方法

    本文实例讲述了JS简单限制textarea内输入字符数量的方法。分享给大家供大家参考。具体如下: 这里演示JS限制一个area内的字符不能超过255,多余则截取。 代码如下: [removed] function getStringUTFLength(str) { ...

    基于PHP的仿Twitter里的Ajax限制字符输入数量的实例.zip

    在本实例中,我们将深入探讨如何使用PHP和Ajax技术实现一个类似于Twitter的字符限制功能。这个功能在用户输入文本时,实时检查并限制输入的字符数,以保持内容的简洁和一致。以下是对这一实现过程的详细解释: 首先...

    jQuery textarea文本框输入文字字数限制提示代码.zip

    总结来说,这个资源展示了如何利用jQuery实现textarea的字符限制功能,以及实时反馈用户输入状态,这对于许多需要用户输入限制长度文本的场景都非常有用。通过理解并修改这个代码,开发者可以更好地掌握jQuery的DOM...

    Textarea输入字数限制实例(兼容iOS&安卓)

    本文将详细介绍如何实现一个兼容iOS和安卓设备的`&lt;textarea&gt;`输入字数限制实例。 首先,我们要明确`&lt;textarea&gt;`是HTML中用于创建多行文本输入的元素,通常用于收集用户的大段文字输入,如评论、反馈或表单中的长...

    限制多行文本域输入的字符个数

    在JavaScript中,我们可以监听`textarea`的`input`事件,每当用户输入时检查当前的字符数,并在达到预设限制时阻止进一步的输入。以下是一个简单的示例: ```html &lt;textarea id="myTextarea" rows="4" cols="50"&gt;&lt;/...

    jQuery编写textarea输入字数限制代码

    总结来看,这段代码向我们展示了如何使用jQuery来实现一个功能完备的textarea字数限制功能,包括对不同浏览器的兼容性处理、中文字符长度的特殊处理以及超出字数时的截断逻辑。这对于前端开发者而言是实际项目开发中...

    js表单验证控制代码部分实例大全

    为了确保用户只输入中文字符,可以使用 JavaScript 代码实现输入过滤。此功能可以通过监听键盘事件并在用户输入非中文字符时阻止该事件来实现。 ```html (/[^u4E00-u9FA5]/g,'')"&gt; ``` ### 3. 仅允许英文输入 有时...

    vue结合html实时截取textarea文本

    在开发Web应用时,有时我们需要实现一种功能,即在用户输入textarea时实时截取文本,这在例如富文本编辑器、聊天应用或者实时预览文本格式的场景中非常常见。Vue.js是一个流行的JavaScript框架,它提供了响应式的...

    JS判断输入字符串长度实例代码(汉字算两个字符,字母数字算一个)

    首先,我们来分析标题:"JS判断输入字符串长度实例代码(汉字算两个字符,字母数字算一个)"。标题中提到的“JS”是JavaScript的缩写,它是一种广泛用于网页开发的脚本语言。标题描述了一个具体的编程任务,即需要编写...

    Jquery实现点击按钮,连续地向textarea中添加值的实例代码

    在当今的Web开发中,JavaScript库如jQuery扮演了重要的角色,因为它简化了文档对象模型(DOM)操作,并且能够更容易地创建丰富的用户界面。本篇文章介绍了如何使用jQuery来实现点击按钮连续向textarea元素中添加值的...

    TextArea用法

    本文档将详细介绍`TextArea`的使用方法,并通过实例演示如何限制`TextArea`中的字符数和行数。 #### 二、基础知识 `TextArea`是HTML中的一种表单控件,用于获取用户输入的多行文本。它的基本语法如下: ```html ...

    一个JavaScript处理textarea中的字符成每一行实例

    1. JavaScript基础知识:文档中介绍了一个简单的JavaScript功能,通过编写函数,能够处理HTML页面上的textarea元素输入的文本,并将其每个字符输出到新的一行。 2. HTML DOM操作:这段代码展示了如何使用JavaScript...

    关于Textarea的换行问题

    从给定的代码片段来看,有两个TextArea实例:`text1`和`text2`。`text1`被配置为仅具有垂直滚动条(`TextArea.SCROLLBARS_VERTICAL_ONLY`),而`text2`则同时拥有水平和垂直滚动条(`TextArea.SCROLLBARS_BOTH`)。...

    ASP.NET jQuery 实例13 原创jQuery文本框字符限制插件-TextArea Counter

    ASP.NET jQuery 实例13介绍了一个实用的jQuery插件,名为“TextArea Counter”,它专注于文本框的字符限制功能。在网页表单中,有时需要限制用户输入的字符数量,例如在社交媒体平台或评论区,避免过长的文本影响...

    Vue实现动态显示textarea剩余字数

    在Vue.js框架中,动态显示textarea的剩余字数是一个常见的需求,这可以帮助用户实时了解他们的输入是否超过了预设的字符限制。以下是如何在Vue中实现这一功能的详细步骤。 首先,我们需要在HTML模板中设置一个`...

    js验证实例

    这个实例不仅限制了非英文非数字字符的输入,还通过`onbeforepaste`事件来防止用户复制粘贴非法字符。 **代码实现**: ```html (/[\W]/g, '')" onbeforepaste="clipboardData.setData('text', clipboardData.get...

    一个JavaScript去除字符串末尾的空白实例代码

    这个实例代码简单易懂,适用于处理单行或多行字符串。它不仅直接使用了JavaScript内置的trim方法,还提供了向下兼容的解决方案以应对旧版浏览器,其中String的原型上定义了trim方法。这种方法保证了即便在不支持原生...

    jquery仿微博字数限制

    接下来,我们编写jQuery代码来监听`textarea`的`keyup`事件,每当用户输入或删除字符时,计算并更新剩余字数: ```javascript $(document).ready(function() { var maxLength = 140; // 微博最大字数限制 var $...

Global site tag (gtag.js) - Google Analytics