Autor Zpráva
Asterofix
Profil
Ahoj,
mám následující funkci:

<script type="text/javascript">
function Smile(what)
{
document.forms.komentar.text_komentare.focus();
document.forms.komentar.text_komentare.value=document.forms.komentar.t ext_komentare.value+what;
}
</script>

ta slouží k přidávání smajlů do komentáře. Problém je v tom, že to funguje jen pro jedno textové pole. Potřeboval bych to nějakým způsobem upravit, aby to vkládalo smajly i do dalších polí podle toho, kde je právě kurzor na psaní. Vůbec nevím co bych s tím měl dělat, protože tu funkci jsem našel v nějakém návodu a javasript ani trochu neovládám.

zkoušel jsem to nějak takhle po vzoru php :) ale nejde to

function Smile(what)
{
if (document.forms.komentar.text_komentare){
document.forms.komentar.text_komentare.focus();
document.forms.komentar.text_komentare.value=document.forms.komentar.t ext_komentare.value+what;
}
else if (document.forms.komentar.nadpis_komentare){
document.forms.komentar.nadpis_komentare.focus();
document.forms.komentar.nadpis_komentare.value=document.forms.komentar .nadpis_komentare.value+what;
}
}


Mohl by mi prosím někdo poradit jak v té fci zohlednit ještě jedno pole, tak aby to fungovalo jen pro aktivní? mockrát díky za pomoc

btw. Co znamenají ty tečky v těch "řetězcích"?
nosko
Profil
Napadlo mi niečo takéto:


<script>
var aktualna=1;

window.onload = function(){
inputs = document.getElementsByTagName("textarea");
for (i = 0; i < inputs.length; i++)
inputs[i].onclick=function(){
aktualna=this.id;
}
}

function Smile(what)
{
document.getElementById(aktualna).value+=what;
document.getElementById(aktualna).focus();
}

</script>


<textarea id="1"></textarea><br>
<textarea id="2"></textarea><br>
<textarea id="3"></textarea><br>
<textarea id="4"></textarea><br>
<a href="javascript:Smile('qwe');">a</a><br>
<a href="javascript:Smile('qwer');">a</a><br>
<a href="javascript:Smile('qwert');">a</a><br>
Asterofix
Profil
nosko

wow, ani nevíš jak jsem ti vděčný, tohle bych nikdy dohromady nedal, asi se taky budu muset trochu věnovat i javascriptu... každopádně to funguje skvěle, takže ještě jednou mockrát děkuju
nosko
Profil
Není zač, inač ešte si tam môžeš dopísať do toho cyklu .onfocus aby to fungovalo na 100% ;)
Asterofix
Profil
ešte si tam môžeš dopísať do toho cyklu .onfocus aby to fungovalo na 100% ;)

tak teď už je to dokonalé! Díky ;)
peta
Profil
nosko
k cemu tam mas dobry ten odkaz? Stejne bez JS ti to nepojede. Jen mates vyhledavaci sluzby.
nosko
Profil
peta
myslíš toto?

<a href="javascript:Smile('qwe');">a</a>

je lepšie používať??

<a href="#" onclick="Smile('qwe');">a</a>

totiž častejšie vidím ten prvý spôsob, ale nie som expert, takže rád sa priučím
Ď
peta
Profil
nosko
pripada ti, ze bez JS obe reseni maji nejaky formalni vyznam odkazu? Myslel jsem pouzit jiny element nez odkaz. Leda bys to mel zamerne kvuli hover. V tom pripade bych ale pole smajliku generoval javascriptem, aby tam bez JS nebylo vubec nic.
Str4wberry
Profil
nosko
„Ideální“ způsob by byl něco jako.
<a href="./?smile=qwe" onclick="Smile('qwe');">a</a>
Když nepůjde JS, vloží se smajlík např. v PHP, jinak se provede Smile('qwe'). Ovšem otázka je, zda je takové vkládání smajlíků ulehčující…
Asterofix
Profil
Já mám smajlíky ve formě obrázku, takže jsem použil tento způsob (to jsem převzal z jednoho návodu):

<img onclick="Smile(':-)')" src="./smile/smile.gif" alt=":-)">

Moje znalost javascriptu je téměř nulová (snad jen trochu pasivně, dokud existuje nějaká podobnost s php), ale chápu o co vám jde a možná by se to dalo vyřešit tím, že by se celý tag <a...> vytisknul javascriptem (něco takového tu už snad bylo). Ale svět se snad nezboří, když robot najde prázdný odkaz.

Moje chyba byla, že jsem se nezmínil, že budu používat obrázky. Nepokládal jsem to za důležité. Tím tady zase vzniknul prostor pro rejpaly... Fakt je ten, že můj velký dík patří noskovi, protože jsem opravdu nečekal, že mi napíše celý skript (já bych tohle dohromady nedal). Takže pokud máte lepší řešení, než je tady, napište ho sem pro ostatní, já jsem plně spokojen s tímto. V opačném případě si prosím založte nové téma a tuhle "blbost" řešte tam. Takhle to pak vypadá, jakoby se ani nevyplácelo někomu pomáhat.

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: