jQuery: zliczanie i limit znaków

Autor: Arkadiusz Tobiasz 10 maja 2010

Jakiś czas temu pokazałem jak przy użyciu JavaScriptu zrobić prosty licznik znaków wpisanych do pola typu textarea oraz jak ograniczyć ilość znaków tam wpisywanych. Dzisiaj skrypt o podobnej funkcjonalności z wykorzystanie tym razem biblioteki jQuery. Ponadto limit wykorzystania dopuszczalnych znaków będzie pokazywany graficznie w postaci progress bara.Rozpoczynamy od ściągnięcia biblioteki jQuery, którą uploadujemy na nasz serwer. Nie zapomnij podmienić ścieżki do niej w poniższym kodzie, który umieszczamy w sekcji <head>…</head> naszego skryptu:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<script type="text/javascript" src="http://ajax.googleapis.com/
ajax/libs/jquery/1.4.2/jquery.min.js"
></script>

<script type="text/javascript">
$(document).ready(function()
{
     $("#contentbox").keyup(function()
     {
          var max = 145
          var box=$(this).val();
          var main = box.length *100;
          var value= (main / max);
          var count= max - box.length;

          if(box.length <= max)
          {
               $('#count').html(count);
               $('#bar').animate(
               {
                    "width": value+'%',
               }, 1);
          }
          else
          {
               $(this).val($(this).val().substring(0,max - 1));
          }
          return false;
     });
});
</script>

Krótki komentarz:
$(‘#contentbox’).keyup(function(){}contentbox to ID naszego pola textarea.
$(this).val() – wykorzystujemy kiedy chemy otrzymać wartość pola textarea.
#bar – to ID naszego progress bara do zliczania znaków.
$(‘#bar’).animate() – zmienia “postęp” naszego progress bara.
var max = 145 – pozwala na ustalenie limitu znaków, w naszym skrypcie to 145 znaków.
$(‘#count’).html(count); – div o id count pokazuje ilość znaków przez nas wpisanych.
$(this).val($(this).val().substring(0,max – 1)); – w przypadku, gdy liczba znaków przekracza dopuszczalny limit wartość naszego pola textarea jest obcinana do 145 pierwszych znaków.

Pozostały jeszcze dwie kwestie styl i formularz, w którym będzie pole textarea ze zliczaniem znaków. Plik stylu wygląda tak:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#bar
{
background-color:#5fbbde;
width:0px;
height:16px;
}
#barbox
{
float:right;
height:16px;
background-color:#FFFFFF;
width:100px;
border:solid 2px #000;
margin-right:3px;
-webkit-border-radius:5px;-moz-border-radius:5px;
}
#count
{
float:right; margin-right:8px;
font-family:'Georgia', Times New Roman, Times, serif;
font-size:16px;
font-weight:bold;
color:#666666
}
#contentbox
{
width:450px; height:50px;
border:solid 2px #006699;
font-family:Arial, Helvetica, sans-serif;
font-size:14px;
}

Natomiast nasz formularz wygląda następująco:

1
2
3
4
5
<div>
<div id="count">145</div>
<div id="barbox"><div id="bar"></div></div>
</div>
<textarea id="contentbox"></textarea>

Skrypt w działaniu możecie zobaczyć tutaj.

Popularity: unranked



WP Oceny
1
2
2
0
1
0
1
1


Odpowiedz

Arkadiusz Tobiasz student Akademii Ekonomicznej im. Karola Adamieckiego w Katowicach na specjalnościach informatyka ekonomiczna oraz rachunkowość. Więcej...

jQuery: powiązane pola select

Jakiś czas temu napisałem jak można powiązać ze sobą dwa pola select, tak aby drugi generował się dynamicznie na podstawie [...]

jQuery: ruchomy skyscraper

Dzisiaj zaprezentuje w jaki sposób możesz na swojej stronie umieścić baner zwany także skyscraperem. Jest to baner o wymiarach 120×600 [...]

Ajax & jQuery: krótkie linki

W tym wpisie zaprezentuję w jaki sposób zrobić aplikację do generowania krótkich linków z wykorzystaniem Ajax’a i jQuery. Nasze krótkie [...]

Galeria z Lightbox’em

Często na swojej stronie chcemy mieć galerię, gdzie będziemy prezentować różnego rodzaju zdjęcia. Dobrze by było, aby galeria ta posiadała [...]

  Sponsorzy bloga
  Reklama na blogach - Brand New Media
Reklama na blogach - Blogvertising.pl
Silesia City Center on Facebook