Comment traiter plusieurs "textarea" avec var input = window.document.

Eléphant du PHP | 271 Messages

04 janv. 2008, 10:28

Bonjour à tous,

Je cherche à améliorer mes formulaires en leur ajoutant des boutons de mise en forme et j'ai suivi le tutoriel http://www.siteduzero.com/tuto-3-11567- ... #ss_part_1 . Mais il existe des pages où se trouve 2 "textaera" et comme l'indique l'auteur du tuto ce code permet seulement de traiter un seul "textarea" à la fois.
Attention toutefois à cette ligne :
var input = window.document.formulaire.message;
Comme expliqué dans le tuto, il faut que vous mettiez le nom du formulaire et du textarea ; donc, si vous les modifiez, pensez à changer cette partie du code.
formulaire est le nom du <form> et message est le nom du <textaera>

Je n'ai aucune notion de javascript et je ne vois pas comment modifier ce code pour qu'il traite plusieurs "textarea" en même temps. Quelqu'un peut il m'aider ?

Merci d'avance de l'aide.

Ci - dessous le javascript complet

Code : Tout sélectionner

<script language="javascript"> function bbcode(bbdebut, bbfin) { var input = window.document.formulaire.message; input.focus(); if(typeof document.selection != 'undefined') { var range = document.selection.createRange(); var insText = range.text; range.text = bbdebut + insText + bbfin; range = document.selection.createRange(); if (insText.length == 0) { range.move('character', -bbfin.length); } else { range.moveStart('character', bbdebut.length + insText.length + bbfin.length); } range.select(); } else if(typeof input.selectionStart != 'undefined') { var start = input.selectionStart; var end = input.selectionEnd; var insText = input.value.substring(start, end); input.value = input.value.substr(0, start) + bbdebut + insText + bbfin + input.value.substr(end); var pos; if (insText.length == 0) { pos = start + bbdebut.length; } else { pos = start + bbdebut.length + insText.length + bbfin.length; } input.selectionStart = pos; input.selectionEnd = pos; } else { var pos; var re = new RegExp('^[0-9]{0,3}$'); while(!re.test(pos)) { pos = prompt("insertion (0.." + input.value.length + "):", "0"); } if(pos > input.value.length) { pos = input.value.length; } var insText = prompt("Veuillez taper le texte"); input.value = input.value.substr(0, pos) + bbdebut + insText + bbfin + input.value.substr(pos); } } </script>
Patience et obstination sont des qualités !

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

04 janv. 2008, 14:00

Tu peux modifier le script comme suite
function bbcode(bbdebut, bbfin,textarea)
{
var input = window.document.formulaire.elements[textarea];
ou encore avec un "id" placé dans chaque textarea

function bbcode(bbdebut, bbfin,textarea)
{
var input = document.getElementById[textarea];
lors de l'appel à la fonction tu précises en 3ème paramètre le textarea à prendre en compte.

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute