Autor Zpráva
louda
Profil *
Zdravim, mám chat a potřebuji ho ještě trochu obohatit, tím, že když uživatel klikne na jméno uživatele, který něco napsal, aby se mu vložilo do textového pole pro zprávu v tomto tvaru uživatel:

pro upřesnění zde napíšu objekty, se kterými budu pracovat.
<span id="uzivatel">[$userName]</span>
<textarea id="message" name="message" class="long-textarea"></textarea>
Str4wberry
Profil
A v čem konkrétně máte problém?
louda
Profil *
Str4wberry
No nevím jak by měla ta funkce v JS vypadat. Umím třeba, aby se mi po kliknutí na jméno to jméno vložilo do textu zprávy (ale to nahradí mnou již napsaný text), nevím jak to mám udělat, aby byl původní text zachován.
imploder
Profil
louda
Pokud se má vložit na konec, tak můžeš jednoduše spojit řetězce.
za předpokladu, že objekt textarey je textarea a jméno uživatele uziv:
textarea.innerHTML = textarea.innerHTML + uziv;
louda
Profil *
imploder
Děkuji, funguje...
Str4wberry
Profil
V případě, že by bylo potřeba vložit jméno na pozici kurzoru, zkuste se podívat na funkci insertTag ve zdejším JavaScriptu.
louda
Profil *
Tak jsem se trochu unáhlil, skript mi chvíli fungoval, než jsem něco krapet upravil, takto vypadá výsledný kód:
function insertObject(){
var userName;
var userNameLength = 0;
var message;

userName = document.getElementById('chatUserName').innerHTML;
userNameLength = userName.length;
message = document.getElementById('message').innerHTML;

message = message + userName.substring(1, userNameLength - 1) + ': ';
}

už. jméno ořezaván, jelikož ve spanu mám ještě hranaté závorky [už. jméno].
Takto to ale do textarey nic nevloží, je tam nějaká fatální chyba?
louda
Profil *
edit:
<span id="chatUserName" onClick="javascript:insertObject();">[$userName)</span>
louda
Profil *
Str4wberry
Tak jsem se nakonec inspiroval Vaším kódem, takže Vám za to děkuji.

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