Autor Zpráva
zacatky_fora
Profil *
Potřeboval bych si udělat JS.
měl bych tlačítka a když ho stisknu, tak se mi do textarea přidá daný tag (či text) V podstatě wysivig.
<form name="form1" method="post" action">
  <table>
    <tr>
      <td width="50%">Text příspěvku: </td>
      <td width="50%"><label for="posts_text"></label>
      <textarea name="posts_text" id="posts_text" cols="45" rows="5"></textarea></td>
    </tr>
    <tr>
 <td><input type="submit" name="odesli" id="odesli" value="Odeslat"></td><td></td>
    </tr>
  </table>
</form>

a vlastně nad texarea bych měl ten svůj "wysivig". S JS jsem se setkal jen okrajově a v podstatě mu vůbec nerozumím :(
Medvídek
Profil
zacatky_fora:
Koukni, jak je to dělaný na tomhle fóru.
zacatky_fora
Profil *
Medvídek:
Já to chápu jak je to dělaný, ale já nechápu ten kod :(
petr 6
Profil
Vyzkoušej tento kód
<form onsubmit='return false'>
<textarea id='area'></textarea>
<input type='submit' onclick='document.getElementById("area").innerHTML+=this.value;' value='aaa'>
<input type='submit' onclick='document.getElementById("area").innerHTML+=this.value;' value='bbb'>
</form>

Asi to není přímo to, co si představuješ, ale tvoje vágně popsané zadání to splňuje (jsou tam tlačítka, a když je stiskneš, tak se ti do textarea přidá daný text) a myslím, že pro pochopení principu to taky není složité.
zacatky_fora
Profil *
petr 6:
Super, neni to přesně jak jsem chtěl, ale jen v type='submit' :) .. ale jinak je to ono, děkuji :) ...
Chamurappi
Profil
Reaguji na zacatkyho_foru:
Děkuješ předčasně. Funguje ti snad ten kód ve všech prohlížečích?


Reaguji na petra 6:
Proč innerHTML? Proč ne value?
zacatky_fora
Profil *
Chamurappi:
to máš pravdu, nezkoušel jsem to....
Jako abych pravdu řekl. Nejraději bych se naučil JS (alespoň ty základy)
petr 6
Profil
Chamurappi:
První, co mě napadlo pro demonstraci.
zacatky_fora
Profil *
Já se snažím pochopit toto:
function doImage() {
    if (editorVisible) {
        ifm.contentWindow.focus();
        myimg = prompt('Enter Image URL:', 'http://');
        if ((myimg != null) && (myimg != "")) {
            myeditor.execCommand('InsertImage', false, myimg);
        }
    }
    else {
        AddTag('[img]', '[/img]');
    }
}


Toto se mi líbí jen díky tomu, že to zanechá i vybraný text.. (vyberu text, kliknu na tlačítko a on jen přidá tagy před vybraný text a za něj)
Liennie
Profil
http://www.volny.cz/peter.mlich/jpw/textarea2.html
Tomashekk
Profil
Liennie:


<script> 
function vlozTag(tag)
{
switch (tag)
	{
	case ':)':	vlozNaKurzor(' '+tag+' ',false,''); break;
	case 'HR':	vlozNaKurzor('<'+tag+'>',false,'\n'); break;
	default:	vlozNaKurzor('<'+tag+'>',true,'</'+tag+'>'); break;
	}
}
 
function vlozNaKurzor(text_pred, text_puvodni, text_za)
{
var textarea = document.formular.policko;
 
if (typeof textarea.selectionStart != 'undefined')		// www Moz ; jestlize textarea.selectionStart existuje, pak...
	{
	var zacatek    = textarea.selectionStart;		// zjisti pozici oznaceni v textarea, zacatek
	var konec      = textarea.selectionEnd;			// a konec
	var text_stred = (text_puvodni) ? textarea.value.substring(zacatek, konec) : '';	// jestlize chceme zachovat puvodni text, pak si jej ulozime nebo prepiseme prazdnym retezcem
	text_stred     = text_pred + text_stred + text_za;	// naplnime text pro vepsani
	textarea.focus();					// nastavime pozici v dokumentu na textarea
	textarea.value = textarea.value.substr(0,zacatek) + text_stred + textarea.value.substr(konec);	// zkopirujeme text pred zacatkem, vepiseme nas text, zkopirujeme text za koncem
	textarea.selectionStart = zacatek + text_stred.length;	// nastav kurzor za vlozeny text, zacatek
	textarea.selectionEnd   = zacatek + text_stred.length;	// a konec
	}
else if (typeof document.selection != 'undefined')		// www IE ; jestlize document.selection existuje, pak...
	{
	var text_stred = (text_puvodni) ? document.selection.createRange().text : '';	// jestlize chceme zachovat puvodni text, pak si jej ulozime nebo prepiseme prazdnym retezcem
	text_stred     = text_pred + text_stred + text_za;	// naplnime text pro vepsani
	textarea.focus();					// nastavime pozici v dokumentu na textarea
	var oznaceni   = document.selection.createRange();	// priradime oznaceni do promenne
	oznaceni.text  = text_stred;				// prepiseme text v oznaceni;
	oznaceni.select();					// nastav kurzor za vlozeny text
	}
else	{							// www ostatni ; provede vlozeni na konec textu
	text_stred      = text_pred + text_stred + text_za;	// naplnime text pro vepsani
	textarea.focus();					// nastavime pozici v dokumentu na textarea
	textarea.value += text_stred;				// pridej na konec
	}
}
</script>


jak sem dodělat další smajlíky?
Liennie
Profil
Od čtvrtého řádku:
switch (tag)
    {
    case ':D':    vlozNaKurzor(' '+tag+' ',false,''); break;  //noví smajlíci
    case ':(':    vlozNaKurzor(' '+tag+' ',false,''); break;  //noví smajlíci
    case ':)':    vlozNaKurzor(' '+tag+' ',false,''); break;
    case 'HR':    vlozNaKurzor('<'+tag+'>',false,'\n'); break;
    default:    vlozNaKurzor('<'+tag+'>',true,'</'+tag+'>'); break;
    }
}


Formulář:
...
<input type="button" value=" smich :D " onclick="vlozTag(':D')">
<input type="button" value=" smutek :( " onclick="vlozTag(':(')">

...

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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