No wlasnie... niezupelnie - nasza szafa grajaca troche skrzypi :> Czemu? poniewaz skrypt nie dziala tak samo pod roznymi przegladarkami.
To ograniczenie ilosci znakow potrzebne jest by zawartosc formularza zmiescila sie w polu tabeli wMySQL. Zarowno MySQL jak i PHP zliczaka znak ENTER jako dwa znaki ('nr') - teoretycznie JS tez tak powinna i pod IE i Opera rzeczywiscie JS zlicza enter jako dwa znaki - niestety pod FF znak enter zliczany jest przez JS jako jeden znak! (paranoja!) - co oznacza, ze niestety skrypt ograniczajacy nie zadziala poprawnie i dopusci zbyt duza ilosc znakow (dokladnie za duza o ilosc uzytych enterow).
No i teraz pytanie co z tym fantem zrobic by dzialalo poprawnie roniwz pod FF?
POwiem jeszcze, ze pierwsze o czym ja pomyslalam to zeby na poczatku sprawdzac z jaka przegladarka mamy do czynienia a potem sprawdzac czy uzyty znak jest enterem - jesli tak to od maksymalnej dozwolonej liczby znakow odejmowac jeden. Niestety skrypt nie zadzialal - FireFox zdaje sie kompletnie nie radzic sobie z rozpoznawaniem entera... - do wylapytania czy pojawil sie enter uzywam: event.keyCode==13
-----------------------------------
tu moze wrzuce kawalki kodu ilustrujace problem:
przyklad funkcji sprawdzajacej czy przegladarka/JS rozpoznaje enter:
function IsEnter(obj)
{
if (event.keyCode==13)
{
alert('enter!');
}
}
oraz jej zastosowanie w HTML:
<textarea onkeyup="IsEnter(this);"></textarea>
a tu jeszcze funkcja do ograniczania pojemnosci textarea (jesli ktos chce sobie sprawdzic w praktyce o co chodzi z tym zliczaniem enterow
function MaxL(obj)
{
maxlen = 5;
if (obj.value.length>maxlen)
{
alert('Za dlugi tekst. Ograniczenie do 5 znaków.');
obj.value=obj.value.substr(0,maxlen);
}
}
i jej zastosowanie w HTML:
<textarea onkeyup="MaxL(this);"></textarea>
(a tu jeszcze opis jak sprawdzic o co mi chodzi:
jesli bedziemy w polu tekstowym wpisywac kolejne cyfry przedzielone enterami to gdy enter zliczany jest jako dwa znaki w polu wpiszemy 1"enter"2 i na kolejnym "enterze" juz wyskoczy nam dialog ze za dlugi (w podanym przykladzie jest ograniczenie do 5 znakow) - w FF niestety uda nam sie wpisac 1'enter'2'enter'3 i dopiero na trzecim enterze wyskoczy dialog...
Jesli ktos ma pomysl jak poradzic sobie z tym dziwnym zachowaniem JS w przegladarce FF to czekam na rady i podpowiedzi
PS: tylko niech nikt nie wyskakuje z czyms w stylu uzyj input bo tam jest atrybut maxlength - owszem jest - ale input dlugasny na 250 znakow (takie docelowo ma byc ograniczenie zawartosci pola) wyglada w formularzu wysylania wiadomosci nieestetycznie