Autor Zpráva
Singell
Profil *
Ahoj,
js není má silná stránka, v tomto směru jsem spíše lepič kódu, proto Vás nyní poprosím o praktické řešení...

Mám na stránce vícero inputů a potřeboval bych, aby při jejich vyplňování uživatel viděl, kolik ještě může znaků vepsat. Našel jsem si zde v diskuzi něco podobného a to v tomto vlákně.

Kód funguje perfektně, jen bych ho potřeboval používat pro 3 inputy najednou na jedné stránce. Potřeboval bych rozlišit nějakým identifikátorem, aby bylo jasné, jaké počítání patří k jakému inputu.

Děkuji
__construct
Profil
Singell:
Napr. takže z tej funkcie spravíš trošku univerzálnejšiu funkciu - tzn. že nedeklaruješ všetky premenné ako globálne, ale budeš ich predávať ako parameter tej funkcii.
<textarea name="vzkaz" id="policko" onkeyup="pocitani(this.id,…)" rows="8" cols="40"></textarea>

var vyskocit = true;
    var hlaska = "Maximální počet znaků je omezen na " + maximum + ".";
    function pocitani(el,sp,…)
  {
    var policko = document.getElementById(el);
    var napsano = document.getElementById(sp);
    …
  }
Singell
Profil *
Tak zkouším, zkouším a nedaří se. Ja do té funkce pocitani() v onkeyup dostanu nazvy inputu, ve kterých se bude zobrazovat počet znaků? A můžeš mi zde napsat i větší část toho samotného javascriptu? :)
Chamurappi
Profil
Reaguji na Singella:
do té funkce pocitani() v onkeyup dostanu nazvy inputu
Spíš ídéčka.

Ukaž, co zkoušíš, a zjistíme, kde děláš chybu.
Singell
Profil *
:) no ja pravě nevím, dal jsem tam natvrdo id inputů a pak mi až došlo, že to nebude fungovat ..onkeyup="pocitani(this.id, napsano, zbyva)...
A pak jsem jeste všechny deklarace proměných vložil do té funkce:
...
function pocitani(policko, napsano, zbyva) {
  var policko = document.getElementById(policko);
  var napsano = document.getElementById(napsano);
  var zbyva = document.getElementById(zbyva); var maximum = 500;
  var vyskocit = true;
  var hlaska = "Maximální počet znaků je omezen na " + maximum + ".";  
...


Jak jsem na začátku říkal, JS mi neříká pane... :)
_es
Profil
Singell:
function pocitani(textarea, pocet, zvysok, max) {
  textarea = document.getElementById(textarea);
  pocet = document.getElementById(pocet);
  zvysok = document.getElementById(zvysok);
  textarea.onchange = textarea.onkeyup = textarea.onmouseup = vypocet;
  function vypocet() {
    if(textarea.value.length > max) textarea.value = textarea.value.substring(0, max);
    pocet.value = textarea.value.length;
    zvysok.value = max - textarea.value.length;
  }
}
Argumenty:
textarea: id textaerea
pocet: id inputu, kde sa bude zobrazovať počet znakov
zvysok: id inputu, kde sa bude zobrazovať zostávajúci počet znakov
max: maximálny dovolený počet znakov
Singell
Profil *
Může mi prosím někdo ukázat jak to bude?
Singell
Profil *
_es:
špatně se mi refreshovala stránka a nevšiml jsem si tvé reakce. Ty názvy IDéček, ve kterých se to bude zobrazovat, jsem napsal správně? Nějak se mi to nezdá, asi by měla být napsána spíše v uvozovkách, ne? No jdu se na to podívat. Díky.
_es
Profil
Singell:
Čo tak prejaviť aj trochu vlastnej snahy?
<script>pocitani(textarea, pocet, zvysok, max);</script>
_es
Profil
Singell:
Nějak se mi to nezdá, asi by měla být napsána spíše v uvozovkách, ne?
Aj len „lepič kódu“ by mal poznať aspoň zápis základných dátových typov.
Singell
Profil *
Však ano, už to funguje, moc ti děkuji. Budu se snazižit nebýt jen „lepič kódu“
Hezký den Ti přeji!
S.

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:

Prosím používejte diakritiku a interpunkci.

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

0