• 统计表单输入字符数(一个字为2个字符,一个字母为一个字符)


    方法一:

    jQuery引进方法,直接调用就可以

    jQuery代码:limit.js

    //txt:文本框jquery对象
    //limit:限制的字数
    //isbyte:true:视limit为字节数;false:视limit为字符数
    //cb:回调函数,参数为可输入的字数
    function InitLimit(txt,limit,isbyte,cb){
    txt.keyup(function(){
    var str=txt.val();
    var charLen;
    var byteLen=0;
    if(isbyte){
    for(var i=0;i<str.length;i++){
    if(str.charCodeAt(i)>255){
    byteLen+=2;
    }else{
    byteLen++;
    }
    }
    charLen = Math.floor((limit-byteLen)/2);
    }else{
    byteLen=str.length;
    charLen=limit-byteLen;
    }
    cb(charLen);
    });
    }

    js调用:

    <script type="text/javascript" charset="utf-8" src="limit.js"></script>

    <script type="text/javascript">

    $(document).ready(function(){

    //字数统计
    InitLimit($("#inputtext1"),36,true,function(c){
    if(c>=0){
    $("#inputtext1").parent().next().children().html(c); //也可以直接定义 0 的类名,不过这样的话,如果有很多统计字数的,要定义很多类比较麻烦
    }else{
    alert("最多可输入18个字");
    }
    });

    })
    </script>

    html代码:

    <span class="news-inputbox"><input type="text" placeholder="请输入文本" id="inputtext1" maxLength="18"/></span><span class="wordnum-limit"><span>0</span>/18</span>

    方法二:

    js方法:

    !DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>无标题文档</title>
    <script type="text/javascript" src="jquery-1.5.1.min.js"></script>
    <script type="text/javascript">
    $(function(){
    var $tex = $(".tex");
    var $but = $(".but");
    var ie = jQuery.support.htmlSerialize;
    var str = 0;
    var abcnum = 0;
    var maxNum = 280;
    var texts= 0;
    var num = 0;
    var sets = null;

    $tex.val("");

    //顶部的提示文字
    $tex.focus(function(){
    if($tex.val()==""){
    $("p").html("您还可以输入的字数<span>140</span>");
    }
    })
    $tex.blur(function(){
    if($tex.val() == ""){
    $("p").html("请在下面输入您的文字:");
    }
    })

    //文本框字数计算和提示改变
    if(ie){
    $tex[0].oninput = changeNum;
    }else{
    $tex[0].onpropertychange = changeNum;
    }

    function changeNum(){
    //汉字的个数
    str = ($tex.val().replace(/w/g,"")).length;
    //非汉字的个数
    abcnum = $tex.val().length-str;

    total = str*2+abcnum;

    if(str*2+abcnum<maxNum || str*2+abcnum == maxNum){
    $but.removeClass()
    $but.addClass("but");
    texts =Math.ceil((maxNum - (str*2+abcnum))/2);
    $("p").html("您还可以输入的字数<span>"+texts+"</span>").children().css({"color":"blue"});
    }else if(str*2+abcnum>maxNum){
    $but.removeClass("")
    $but.addClass("grey");
    texts =Math.ceil(((str*2+abcnum)-maxNum)/2);
    $("p").html("您输入的字数超过了<span>"+texts+"</span>").children("span").css({"color":"red"});
    }
    }

    //按钮点击
    $but.click(function(){
    if($(this).is(".grey")){
    sets = setInterval(flash,100);
    $tex.addClass("textColor");
    }

    function flash(){
    num++;
    console.log(num);
    if(num >= 5){
    num=0;
    clearInterval(sets);
    }else if(num%2 == 1){
    $tex.addClass("textColor")
    }else{
    $tex.removeClass("textColor")
    }
    }
    })
    })
    </script>
    <style type="text/css">
    .box{
    500px;
    margin:10px auto;}

    *{
    margin:0;
    padding:0;
    }

    p span{
    color:#069;
    font-weight:bold;
    }

    textarea{
    300px;
    }

    .textColor{
    background-color:#0C9;
    }

    .but{
    background-color:#066;
    padding:5px;
    color:#FFF;
    border:1px solid #999;}

    .grey{
    padding:5px;
    color:#FFF;
    background-color:#CCCCCC;}


    </style>
    </head>
    <body>
    <div class="box">
    <p>请在下面输入您的文字:</p>
    <textarea name="weibao" class="tex" cols="" rows="8"></textarea>
    <input type="button" class="but" value="确定" />
    </div>
    </body>
    </html>

  • 相关阅读:
    PAT甲级1137Final Grading
    晚测6
    模拟15
    模拟14
    模拟13
    晚测5
    晚测4
    模拟11
    7012. 2021.03.15【2021省赛模拟】十
    7011. 2021.03.13【2021省赛模拟】nonintersect
  • 原文地址:https://www.cnblogs.com/snowbaby-kang/p/3771849.html
Copyright © 2020-2023  润新知