Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML][JavaScript]Ograniczenie textarea
Forum PHP.pl > Forum > Przedszkole
Misiur66
Witam! GDy chodzi o input to żaden problem, 'maxlength' i już. Ale w textarea jest ciężej... i tu właśnie jest problem. Mam funkcje JS:
Kod
function licz(id){
    var kontener = $('licz_'+id);
    var ograniczenie = 300;
    var textarea = document.forms['formularz_komentarz_' + id].elements['komentarz_tresc_' + id].value;
      var wynik = ograniczenie - textarea;
    if(wynik == 0){
        textarea.innerHTML = textarea.substr(0, 300);
    }
}

który liczy i ogranicza ilość wpisanych znaków. Niesety przy użyciu onkeypress, nie da się użyć backspace, anie delete. A przy użyciu onkeyup/down, da się to oszukać za pomocą ctrl+c/v. W googlach sątylko funkcje do dołączania w tagach, czego nie lubię i nie wiem, jak to przerobić. Pomocy!
Shili
W googlech jest tego dużo. Dla przykładu jeden z pierwszych wyników
Pilsener
Cytat
GDy chodzi o input to żaden problem, 'maxlength' i już. Ale w textarea jest ciężej
- maxlenght nie jest zalecany i został zdeprecjonowany - zabezpieczenia po stronie przeglądarki to żadne zabezpieczenia, najlepiej sprawdzać wszystko po stronie PHP. Jednak jeśli Ci bardzo zależy, to na brydz.ugu.pl przy dodawaniu komentarza masz prosty JS + licznik, możesz to ksopiowac i użyć u siebie. Podobnych rozwiązań jest masa.
Misiur66
W obu niestety jest wstawione w HTML, a mi jakoś nie za bardzo idzie przekształcanie. Oba da się obejść... To pierwsze już oglądałem też tak jak było...
Shili
Kurcze, daj to w osobnym pliku i zalinkuj w head.

Przecież to praktycznie nie ma znaczenia w tym przypadku czy kod jest na stronie, czy w osobnym pliku. Powiedz co dokładnie robisz, że Ci to nie idzie?

@ups, nie zrozumiałam, wystarczy, że user będzie miał wyłączony js, albo że wpisze Ci się bot i to obejdzie.
nospor
Cytat
Oba da się obejść...
Wszystko co masz postronie przeglądarki da sie obejsc. Nawet Twoje maxlength w inputach da sie obejsc w minute.
Jak juz wspomniano - podstawowa walidacja to php. Js to tylko dodatek
Misiur66
To jest oczywiste że będzie sprawdzenie PHP, ale zawracać głowę PHP, jak najmniej ;-) Czy jest jakiś nieiwazyjno-HTML sposób?
Shili
To nie jest dobra metoda, żeby php spychać na boczny tor. Tylko dobrze zaprogramowany php jest w stanie wyłapać wszelakie wyjątki. Poza tym sprawdzenie długości za pomocą php to przecież tylko jedna linijka, a masz gigantyczną pewność, że nie przejdzie Ci nic, czego nie chcesz przyjąć.

Sposobów htmlowychnie ma - jak napisał nospor da się je obejść błyskawicznie szybko, choćby za pomocą zwyczajnego firebuga. Nie tędy droga.
Misiur66
Spróuję przerobić te skrypty inwazyjne... No cóż pokazaliście mi prawdę ograniczeniach JS (wystarzczy że ktoś ma wyłączony i moja stronka siada...) Wg. Ksiązki którą czytam ("Kuloodporny Ajax"), naprawdę trzeba najpierw zrobić stronkę dla każdego, potem ją udogadniać... Dzieki wszystkim!
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.