[javascript] une fonction appliqué à TOUS mes text-area

WRInaute discret
Salut,
pour la partie admin d'un site, j'ai intégré des boutons gras, italique et lien permettant au client de mettre en forme le texte.
Par exemple, gràce à un script (javascript) quand on clique sur le bouton "gras" après avoir selectionné du texte à l'interieur de la zone de texte (textarea) p1 du formulaire (intitulé "modif")...les balises <gras> et <gras> sont intégré avant et après le texte choisis dans le textarea. Puis on valide le formulaire, mon texte est intégré avec les balises <gras> dans la bdd et ce n'est qu-à l'affichage, ou je remplace (par un script php) les balises <gras> en <strong>.

Mon problème concerne l'ajout des balises personalisées
Pour cela, j'avais trouvé un script (javascript) : voir plus bas.
Or celui-ci ne me permet de modifier seulement le text-area intitulé p1.
Or je souhaiterai pouvoir traiter plusieurs text-area.
Comment faire pour que cette fonction javascript s'applique à tous mes text-areas?

Merci.


le script :
Code:
var isMozilla = (navigator.userAgent.toLowerCase().indexOf('gecko')!=-1) ? true : false;
var regexp = new RegExp("[\r]","gi");

function storeCaret(selec)
{
	if (isMozilla) 
	{
	// Si on est sur Mozilla

		oField = document.forms['modif'].elements['p1]'];

		objectValue = oField.value;

		deb = oField.selectionStart;
		fin = oField.selectionEnd;

		objectValueDeb = objectValue.substring( 0 , oField.selectionStart );
		objectValueFin = objectValue.substring( oField.selectionEnd , oField.textLength );
		objectSelected = objectValue.substring( oField.selectionStart ,oField.selectionEnd );

	//	alert("Debut:'"+objectValueDeb+"' ("+deb+")\nFin:'"+objectValueFin+"' ("+fin+")\n\nSelectionné:'"+objectSelected+"'("+(fin-deb)+")");
			
		oField.value = objectValueDeb + "<" + selec + ">" + objectSelected + "</" + selec + ">" + objectValueFin;
		oField.selectionStart = strlen(objectValueDeb);
		oField.selectionEnd = strlen(objectValueDeb + "<" + selec + ">" + objectSelected + "</" + selec + ">");
		oField.focus();
		oField.setSelectionRange(
			objectValueDeb.length + selec.length + 2,
			objectValueDeb.length + selec.length + 2);
	}
	else
	{
	// Si on est sur IE
		
		oField = document.forms['modif'].elements['p1'];
		var str = document.selection.createRange().text;

		if (str.length>0)
		{
		// Si on a selectionné du texte
			var sel = document.selection.createRange();
			sel.text = "<" + selec + ">" + str + "</" + selec + ">";
			sel.collapse();
			sel.select();
		}
		else
		{
			oField.focus(oField.caretPos);
		//	alert(oField.caretPos+"\n"+oField.value.length+"\n")
			oField.focus(oField.value.length);
			oField.caretPos = document.selection.createRange().duplicate();
			
			var bidon = "%~%";
			var orig = oField.value;
			oField.caretPos.text = bidon;
			var i = oField.value.search(bidon);
			oField.value = orig.substr(0,i) + "<" + selec + "></" + selec + ">" + orig.substr(i, oField.value.length);
			var r = 0;
			for(n = 0; n < i; n++)
			{if(regexp.test(oField.value.substr(n,2)) == true){r++;}};
			pos = i + 2 + selec.length - r;
	
			var r = oField.createTextRange();
			r.moveStart('character', pos);
			r.collapse();
			r.select();

		}
	}
}
 
WRInaute discret
ok mais comment je défini que ma fonction s'applique aux <textarea> ?


Szarah, Merci pour le lien, ça a l'air sympa mais je ne pesne pas que ça aille pour ce projet là.
 
WRInaute accro
>> 2fou

Tu as raison, 2fou, ton souci est autre part et je n'avais pas bien lu ta question.
Mais pour une autre fois, c'est un bon code.
 
Discussions similaires
Haut