Autor Zpráva
Kaeru
Profil
Potřeboval bych poradit. Dělám registrační formulář a potřebuji oživatele "omezit" na určitou délku zadaného textu. Skript v php, který zkontroluje délku textu, popř. ho ořízne pro mě není problém. Já bych ale chtěl uživateli ukázat, kolik už znaků napsal, aby měl jasno, jak dlouhý text si ještě může dovolit.

Mám textareu a potřebuji zpočítat aktuální počet napsaných znaků, po každém napsaném znaku.

Je mi jasné, že to jde přes JavaScript, bohužel v něm téměř nedělám, a tak nemohu přijít na kloudné řešení. Předem díky za pomoc.
peta
Profil
jakpsatweb - javascript - priklady - formulare -> prectes zapises value
jakpsatweb - javascript - objekt string -> zjistis delku retezce ve value
Kaeru
Profil
peta

díky moc, zkusím, kdyžtak napíšu konkrétní kód.
Ghosting
Profil
Kaeru
Zkus toto http://www.vertigo4.cz/blog/odpocet-znaku-v-textarea

peta
Zase perlíš
Timy
Profil
Ten vertigův skript jmi přijde fuj, co to zkusit jednodušeji:

function pocet_znaku (pocet) {
	delka = document.form.text.value.length;
	obsah = document.form.text.value;
	
	if (delka <= pocet) 
	{
		document.form.zbyva.value = pocet - delka;
		document.form.napsano.value = delka; 
	}
	else
	{
		alert("Maximální počet znaků je " + pocet);
		document.form.text.value = obsah.substring(0, pocet);
	}
}


Argument „pocet“ udává maximální délku. A místo onkeypress používám na odchycení onkeyup, neháže to pak alertovou chybu při backspace, když jsem dosáhl limitu.
peta
Profil
Timy
Tvuj je uplne stejny :) Co ten alert?

Ghosting
Strucne a jasne. Vse, co potrebuje je v tech prikladech.
Tez jsem mohl uvest odkaz na xatchat.sk , kde to pouzivaji, ale prijde mi to naprosto neprakticky script. Pocitat znaky ma smysl az pri onsubmit. Do te doby bych s tim cloveka neotravoval.
Take jsem se mohl zminit, ze ruzne sms webove sluzby to maji, staci si to z tama okopirovat.
Prislo mi to ale jako zbytecne zdlouhave a neprehledne. Ty priklady jsou naprosto jasne.
Vsadim 1000, ze ani nevis, jake priklady tam jsou.
Timy
Profil
peta
Já ten jeho skript jen upravil a dal tomu nějakou kulturu, nevymýšlel jsem to znova.
Bubák
Profil
peta
Pokud neco kritizujes, mel bys to umet udelat lepe. Tve lepe = 0.
Zdroj
Kaeru
Profil
Ale no tak, přece se tu nebudete hádat. Díky, pomohli jste mi, občas stačí jen trošku popostrčit, udělal jsem to podle těch příkladů na jakpsatweb. Nejdřív mi to nešlo, protože jsem zapomněl ukončit předcházející formulář, ale za chvilku jsem na to přišel. Díky moc.

peta
pomohl jsi mi, díky. Mě jako uživateli při registraci by přišlo hloupé, kdyby tam něco takového nebylo, protože až ten php script by mi řekl, že to je moc dlouhé, a že to musím přepsat. Možná bych ze stránky odešel, protože mě to zdržuje a je moc práce si zjišťovat, kolik jsem napsal znaků. Ale to už je asi věc názoru.
Jcas
Profil *
Hledal jsem počítání a našel toto vlákno. Ukázka super, ale trochu jsem ji musel upravit (princip naprosto stejný, jen použití innerHTML a this.
Ukázka jak jsem si s tím poradil já. Přesně se to do tohoto vlákna (i když starého) hodí.

<textarea onkeyup="pocet(this, 'pocet')"></textarea>
<p id="pocet">5</p>

function pocet(area, id) {
var pocet = 5;
var prvek = document.getElementById(id);
var delka = area.value.length;
var obsah = area.value;

if (delka <= pocet) 
  {
  var zbyva;
  zbyva = pocet - delka;
  prvek.innerHTML = "max. " + zbyva + " znaků";
  }
  else
  {
alert("Maximální počet znaků je " + pocet);
      area.value = obsah.substring(0, pocet);
  }

}

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Odkud se sem odkazuje


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: