Autor Zpráva
hampy
Profil
Ahoj, mám problém. Mám diskuzní fórum, a chtěl jsem nad něj dát tři políčka - I,B a U - na kurzívu, tučné a podtržené písmo. Když se na to políčko klikne, měl by se do pole textarea s názvem "vzkaz" vložit <i></i>,<u></u> nebo <b></b>.

Napřed to fungovalo, ale teď to přestalo, a já nevím proč.

Tady je JavaScript:

<script language="javascript" type="text/javascript">
function VlozTag(jakej) {
tag='';

switch (jakej) {
case 'i': tag+='<i></i>';
break;
case 'b': tag+='<b></b>';
break;
case 'u': tag+='<u></u>';
break;
default: tag+='';
}

pole=document.forms[0].zprava.value;
pole+=tag;
document.forms[0].zprava.value=pole;
}
</script>

a tady HTML: (ve zkratce)

<form>
<input id="form_tlacitko_b" name="b" value="B" onClick="JavaScript:VlozTag('b');" title="Tučné">&nbsp;<input id="form_tlacitko_i" name="i" value="I" onClick="JavaScript:VlozTag('i');" title="Kurzíva">&nbsp;<input id="form_tlacitko_u" name="u" value="U" onClick="JavaScript:VlozTag('u');" title="Podtržené">
<textarea name="zprava"></textarea>
</form>
nightfish
Profil
co vypíše chybová konzole v tvém prohlížeči?
Nosko
Profil *
No neviem ak tebe ale mne to funguje na 100% v FF,Opere,IE. Som jednoducho prekopíroval tvoj kód, vložil do PSpadu a funguje.Uložil --> vyskúšal a funguje všade!!
Peca
Profil
Asi nebude ta chyba, ale jakého type jsou ty inputy?
Nosko
Profil *
pole=document.getElementById('zprava').value;
pole+=tag;
document.getElementById('zprava').value=pole;

<textarea id="zprava" name="zprava"></textarea>

Poprípade skus zmeniť takto, je to ot isté a funguje to, ale tvoj problém to nerieši ;-)
hampy
Profil
Už to mám, měl jsem tam dvakrát forms[0] - protože tam mám dva formuláře. Ten druhý jsem změnil na forms[1] a už to jede. I tak díky za pomoc, mějte se
los
Profil *
Vidím, že už si to nejako vyriešil, ale aj tak by som Ti odporučil napísať ten skript inak, aby si ho nemusel meniť pri každej takejto zmene stránky.

Najjednoduchšie by sa to dalo upraviť tak, že sa bude do tej funkcie ako argument posielať tlačidlo z formulára, v ktorom je textarea name="zprava".

Potom by stačila funkcia:
function tag(el) {

var t = el.value.toLowerCase();

el.form.zprava.value += "<" + t + "></" + t + ">";
}


A HTML by mohlo vyzerať cca. takto:
<form>

<input type="button" value="B" onclick="tag(this)" title="Tučné">&nbsp;
<input type="button" value="I" onclick="tag(this)" title="Kurzíva">&nbsp;
<input type="button" value="U" onclick="tag(this)" title="Podtržené">
<textarea name="zprava"></textarea>
</form>
Toto téma je uzamčeno. Odpověď nelze zaslat.

0