字数输入限制百分比显示CSS+JS

  •   2009-07-31/13:30
  • <style type="text/css">

    .progress{
     width: 1px;
     height: 14px;
     color: white;
     font-size: 12px;
      overflow: hidden;
     background-color: navy;
     padding-left: 5px;
    }

    </style>

    <script type="text/JavaScript">

    function textCounter(field,counter,maxlimit,linecounter) {
     // text width//
     var fieldWidth = parseInt(field.offsetWidth);//parseInt 方法 返回由字符串转换得到的整数。将字符串转换成整型。
     //obj.offsetWidth 指 obj 控件自身的绝对宽度,不包括因 overflow 而未显示的部分,也就是其实际占据的宽度,整型,单位像素
     var charcnt = field.value.length; 

     // trim the extra text
     if (charcnt > maxlimit) {
      field.value = field.value.substring(0, maxlimit);
     }

     else {
     // progress bar percentage
     var percentage = parseInt(100 - (( maxlimit - charcnt) * 100)/maxlimit) ;
     document.getElementById(counter).style.width = parseInt((fieldWidth*percentage)/100)+"px";
     document.getElementById(counter).innerHTML="已输: "+percentage+"%"
     // color correction on style from CCFFF -> CC0000
     setcolor(document.getElementById(counter),percentage,"background-color");
     }
    }

    function setcolor(obj,percentage,prop){
     obj.style[prop] = "rgb(80%,"+(100-percentage)+"%,"+(100-percentage)+"%)";
    }

    </script>

    <p>限制:120字节</P>
    <form>

    <textarea rows="5" cols="40" name="maxcharfield" id="maxcharfield"
    onKeyDown="textCounter(this,'progressbar1',120)"
    onKeyUp="textCounter(this,'progressbar1',120)"
    onFocus="textCounter(this,'progressbar1',120)" ></textarea><br />

    <div id="progressbar1" class="progress"></div>

    <script>textCounter(document.getElementById("maxcharfield"),"progressbar1",120)</script>

    </form>


    评论 {{userinfo.comments}}

    {{money}}

    {{question.question}}

    A {{question.A}}
    B {{question.B}}
    C {{question.C}}
    D {{question.D}}
    提交

    驱动号 更多