Chcę policzyć znaki w obszarze tekstowym, więc właśnie utworzyłem:
<textarea id="field" onkeyup="countChar(this)"></textarea>
function countChar(val){
var len = val.value.length;
if (len >= 500) {
val.value = val.value.substring(0, 500);
} else {
$('#charNum').text(500 - len);
}
};
Co jest nie tak z moim fragmentem kodu? To nie działa! Cóż, to było pismo początkującego, potrzebuję pomocy.
Odpowiedzi:
Jakie błędy widzisz w przeglądarce? Rozumiem, dlaczego Twój kod nie działa, jeśli to, co opublikowałeś, jest niekompletne, ale nie wiem, że nie mam pewności.
... u mnie działa dobrze.
Edycja: Prawdopodobnie powinieneś wyczyścić div charNum lub napisać coś, jeśli przekraczają limit.
źródło
Ulepszona wersja oparta na funkcji Caterhama :
źródło
⚠️ Przyjęte rozwiązanie jest błędne.
Oto dwa scenariusze, w których
keyup
zdarzenie nie zostanie uruchomione:input
Zamiast tego użyj zdarzenia HTML5 , aby uzyskać bardziej niezawodne rozwiązanie:JavaScript ( wersja demonstracyjna ):
A jeśli absolutnie chcesz używać jQuery:
źródło
input
wydarzeniu. DziękiPrzykład HTML, używany wszędzie tam, gdzie potrzebuję licznika, zwróć uwagę na znaczenie identyfikatorów obszaru tekstowego i drugiego zakresu:
id="post"
<->id="rem_post"
oraz tytuł zakresu, który zawiera żądaną liczbę znaków każdego konkretnego obszaru tekstowegoFunkcja JavaScript, zwykle umieszczona wcześniej
</body>
w moim pliku szablonu, wymaga jQueryźródło
to działało dobrze dla mnie.
źródło
substring()
musi się staćsubstr()
.Przykład: jsfiddle.net/xqyWV
źródło
Cóż, nie różni się to zbytnio od tego, co zostało powiedziane, ale działa to bardzo dobrze we wszystkich przeglądarkach.
Chodzi o to, aby usunąć dowolny tekst, który przekracza zdefiniowaną długość.
Kod HTMl wyglądałby tak:
źródło
HTML
jQuery
źródło
Zrobiłem kombinację powyższych. Pozwala na zatrzymanie wpisywania tekstu i pozwala na cofanie, a także utrzymuje licznik, nawet podczas cofania:
Kod JavaScript:
HTML:
Podziękowania dla tych plakatów przede mną !! Mam nadzieję, że to komuś pomoże!
źródło
Stworzyłem własną wtyczkę jQuery do tego zadania, możesz ją wypróbować tutaj:
http://jsfiddle.net/Sk8erPeter/8NF4r/
Możesz tworzyć liczniki znaków w locie (a także pozostałe liczniki znaków), możesz określić, czy chcesz pociąć tekst, możesz zdefiniować teksty sufiksów, a także zdefiniować krótki format i jego separator.
Oto przykład użycia:
Oto kod wtyczki:
źródło
źródło
Zastanawiałem się, jak zrobić to samo i biorąc pomysły od wszystkich tutaj, oto co wymyśliłem:
JsFiddle
źródło
Możesz także wstawić własny identyfikator lub klasę elementu zamiast „h1” i licznik zdarzenia długości znaków w ciągu obszaru tekstowego ☻
źródło
Twój kod był trochę pomieszany. Oto czysta wersja:
źródło
Spróbuj tego.
źródło
Bardziej ogólna wersja, dzięki czemu można używać funkcji dla więcej niż jednego pola.
źródło
Użyj poniższego, aby pominąć używanie else, a także pominąć uzyskiwanie ujemnej liczby.
źródło
Tutaj mój przykład. Kolacja prosta
źródło
Nie byliśmy zadowoleni z żadnego z zamierzonych rozwiązań.
Dlatego stworzyliśmy kompletne rozwiązanie licznika znaków dla JQuery, zbudowane na bazie jquery-jeditable . Jest to
textarea
rozszerzenie wtyczki, które może liczyć w obie strony, wyświetla niestandardową wiadomość, ogranicza liczbę znaków, a także obsługuje jquery-datatables .Możesz to przetestować od razu na JSFiddle .
Łącze do GitHub: https://github.com/HippotecLTD/realworld_jquery_jeditable_charcount
Szybki start
Dodaj te wiersze do kodu HTML:
I wtedy:
źródło
źródło
Możesz użyć:
źródło