Posts Tagged ‘giới hạn ký tự trên textarea’

Form field Progress Bar

March 23rd, 2008

Xin trình bày với các bạn cách giới hạn số ký tự trong <textarea>   

Trước hết mời các bạn xem DEMO cái đã.

Sau khi đã xem demo rồi bây giờ bạn muốn làm được như vậy ? Bạn làm theo 2 bước đơn giản sau đây.

Bước 1:Bạn copy hết đoạn code này vào giữa cặp thẻ <head></head> của trang web của bạn.

<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">

/***********************************************
* Form Field Progress Bar- By Ron Jonk- http://www.euronet.nl/~jonkr/
* Modified by Dynamic Drive for minor changes
* Script featured/ available at Dynamic Drive- http://www.dynamicdrive.com
* Please keep this notice intact
***********************************************/

function textCounter(field,counter,maxlimit,linecounter) {
    // text width//
    var fieldWidth =  parseInt(field.offsetWidth);
    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="Limit: "+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>

 

Bước 2:Đây là bước sử dụng.bạn tạo ra 1 Form rồi gọi hàm textCounter(…) để giới hạn số ký tự được gõ trên texterea thôi.

<form>
<textarea rows="5" cols="40" name="maxcharfield" id="maxcharfield"
onKeyDown="textCounter(this,’progressbar1′,20)"
onKeyUp="textCounter(this,’progressbar1′,20)"
onFocus="textCounter(this,’progressbar1′,20)" ></textarea><br />
<div id="progressbar1" class="progress"></div>
<script>textCounter(document.getElementById("maxcharfield"),"progressbar1",20)</script>
</form>

 

–Xong–