Autor Zpráva
Niik
Profil *
Dobrý den,
Mám tento javascript kód:
var neco = document.getElementById("area").value;
kterým se snažím dostat data z tohoto textarea:
<textarea id="area">Nějaký text</area>

Problém je v tom, že javascript vždy do proměnné neco dá hodnotu, která je v textarea předurčená, tudíž v tomto případě "Nějaký text", když ale textarea upravím na něco jiného, chtěl bych aby mi do té proměnné neco byl dán aktuální (upravený) obsah pole textarea. Funkci vyvolávám pomocí onClick na odkaz.

Děkuji za rady
quatzael
Profil
Niik:
musíš tam dát nějakou událost, v Tvým případě nejspíš onChange!! takhle proběhne script jenom hned při načtení stránky.. To je jasný, že Ti to nebude fungovat..
weroro
Profil
Máš nesprávnu uzatváraciu značku pre textareu. Má tam byť </textarea>

Ja som to urobil takto a bez problému.
<!DOCTYPE HTML>
<meta charset="utf-8">
<title>jpw</title>
<script type="text/javascript">
  function obsah()
  {
    // buď
    alert(document.getElementById("area").value);
    // alebo
    alert(document.getElementById("area").innerHTML);
    
    return false;
  }
</script>
<textarea id="area">Nějaký text</textarea>
<a href="#" onclick="return obsah();">vypíš obsah</a>
Chamurappi
Profil
Reaguji na Niika:
javascript vždy do proměnné neco dá hodnotu, která je v textarea předurčená
To se neděje. Ve vlastnosti value je vždy aktuální hodnota. V uvedeném kódu problém není.

když ale textarea upravím na něco jiného
Tipnul bych si, že při tomto upravování neměníš text v <textarea>, ale v nějakém WYSIWYG editoru, který hodnotu <textarea> neaktualizuje ve stejný okamžik.
Jestli jsem se netrefil, prosím o odkaz na živou ukázku.


Reaguji na quatzaela:
musíš tam dát nějakou událost například onChange
Píše, že to má ve funkci onclick. Proč ty dva vykřičníky? Proč dvě tečky?


Reaguji na werora:
// alebo
Ne, innerHTML samozřejmě ne, to jednak nefunguje ve všech prohlížečích a jednak nevrací skutečnou hodnotu.
weroro
Profil
Chamurappi:
jednak nevrací skutečnou hodnotu
Čo myslíš pod skutočnou hodnotou? Mal som dojem, že ak je niečo uzavreté medzi dvoma tagmy, platí aj innerHTML. Aj keď uznávam, že pre tak špecifickú vec ako je textarea tam bude výnimka.
quatzael
Profil
Chamurappi:
Píše, že to má ve funkci onclick.
Aha, nějak jsem to přehlídl..

Proč ty dva vykřičníky? Proč dvě tečky?
promiň, to je prostě evergreen.. snažím se to omezovat..
Niik
Profil *
Chamurappi:
„když ale textarea upravím na něco jiného“
Tipnul bych si, že při tomto upravování neměníš text v <textarea>, ale v nějakém WYSIWYG editoru, který hodnotu <textarea> neaktualizuje ve stejný okamžik.
Jestli jsem se netrefil, prosím o odkaz na živou ukázku.

Ano používám editor - NicEdit. Co by s tím tedy šlo dělat?
Chamurappi
Profil
Reaguji na werora:
Mal som dojem, že ak je niečo uzavreté medzi dvoma tagmy, platí aj innerHTML.
V innerHTML je vnitřní HTML, to platí u <textarea> také (v omezené množině prohlížečů). Ale vnitřní HTML není viditelná hodnota, je to HTML podoba té hodnoty, která je většinou k ničemu. Jestli stále nechápeš rozdíl, zkus si do <textarea> napsat menšítko a porovnej si innerHTML s value.


Reaguji na Niika:
Nastudovat si dokumentaci NicEditu, tam by mělo být napsáno, jak z editoru (což není <textarea> ale nejspíš nějaký <div>) vymáčknout aktuální hodnotu.

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: