zliczanie ilości znaków w polu textowym

0

Witam

Chcę zliczyć ilość znaków wpisywanych do textarea.

mam taki skrypt:

function SignLimit(tab,max)
{
var oSpan = document.getElementById( 'counter' );
oSpan.innerHTML = ( ( tab.value.length ) ) +'/' + max;
if ( tab.value.length = max )
{
input = tab.value.substring(0,max - 1);
tab.value = input;
}
}

po wywoływaniu poprzez:

<textarea id="comment" onkeyup="SignLimit(this,255);" cols="10" rows="3" name="comment"></textarea>
<small>Wykorzystano <strong><span id="counter">0/255</span></strong> znaków</small>

prawie wszystko działa tak jak powinno, tzn. ładnie zlicza ilość wpisanych znaków ale po dojściu do końca pola tekstowego (wypełnieniu go w całości czyli w tym przypadku 30 znakami) każdy następny wpisywany znak jest niewidoczny - widok pola tekstowego wraca na początek pokazując pierwszych 30 znaków ale nie pokazuje 31, 32 itd.
Przy normalnym textarea (bez kodu zliczającego) wpisując 31 znak znika znak pierwszy (widać znaki 2-31 czyli tak jak być powinno). W moim przypadku wpisując trzydziesty pierwszy znak dalej widać znaki 1-30 a 31. jest niewidoczny.
Co zrobić żeby znaki w polu tekstowym przesuwały się w miarę wpisywania a nie pozostawały na pozycji pierwszego znaku?
Z góry dzięki za pomoc.

edit. dodam tylko, że pod IE wszystko jest ok. Problem występuje tylko pod Firefoxem. Da się jakoś to ominąć?

0

Nie wiem jakim cudem Ci to tak działa pod IE, jakieś dziwne masz to IE, bo pod ósemką zachowuje się tak jak ty nie chcesz (przynajmniej z tego co zrozumiałem).

tutaj: if ( tab.value.length = max ) masz przypisanie, a nie porównanie (jeden znak równości, a nie dwa).

Tobie chodzi o ucinanie pierwszego znaku, jak dopiszę znak na końcu, który przekracza limit znaków?
Jeżeli tak to masz tu wypoprawiany kod (choć i tak boli jak się patrzy)

function SignLimit(tab,max)
{
var oSpan = document.getElementById( 'counter' );
if ( tab.value.length > max )
{
input = tab.value.substring(1, max+1);
tab.value = input;
}
oSpan.innerHTML = ( ( tab.value.length ) ) +'/' + max;

}

1 użytkowników online, w tym zalogowanych: 0, gości: 1