Bloquer une partie d'un texte [textarea]

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Bloquer une partie d'un texte [textarea]

par Cyrano » 25 mars 2008, 15:25

Problème résolu !
Alors clique donc sur le bouton prévu à cet effet en haut de cette page, si tu es identifié, tu vas le voir juste au dessus du sujet de départ. ;)

par Mimo » 25 mars 2008, 15:03

Merci de ta réponse, je n'attendais pas du code déjà maché mais juste la méthode, néanmoins un grand merci pour t'être donné la peine.

Problème résolu !

par Cyrano » 25 mars 2008, 14:44

Non, l'image n'est pas une solution. Il faut utiliser un gestionnaire d'évènements onkeyup dans le textarea et avoir une fonction qui va faire deux choses :
-1- vérifier que le "TOUS :" débute ou non le texte de cette zone;
-2- S'il ne trouve pas cette chaine le rajouter et remettre le texte saisi en place.

Pour ça, tu dois te créer une petite fonction qui va récupérer dans un premier temps le contenu du textarea. Ta balise <form> doit avoir un attribut "id" avec une valeur dedans et pareil pour la balise textarea pour que l'exemple qui suit fonctionne.
/**
 * Fonction de traitement du textarea
 */
function textareaTous()
{
    /* -1- on récupère l'objet formulaire */
    var oForm    = document.forms.idDeLaBaliseForm; // remplacer "idDeLaBaliseForm" par l'id de ta balise <form>
    /* -2- on récupère l'objet textarea */
    var oTxtarea = oForm.elements.idDuTextarea; // remplacer "idDuTextarea" par l'id de la balise <textarea>
    /* -3- on récupère le contenu du textarea */
    var contenu  = oTxtarea.value;

    // création d'une expression régulière qui va permettre de trouver "TOUS :"
    if(!contenu.match(/^(TOUS :)/))
    {
        oTxtarea.value = 'TOUS : '+ contenu;
    }
}
Dans la fonction, il n'y a pas de else parce que si on trouve l'occurence de 'TOUS :', il est inutile de changer quoique ce soit.

À partir de là, tu ajoutes dans ta balise <textarea> ce gestionnaire d'évènement :

Code : Tout sélectionner

<textarea cols="20" rows="5" id="idDuTextarea" onkeyup="textareaTous();"></textarea>

par Invité » 25 mars 2008, 13:20

aucune idée en js mais

tu peux par contre ecrire ton "tous" en image et le placer en background dans le textarea, et mettre une marge adequate..

si ca peut t aider :D

Bloquer une partie d'un texte [textarea]

par Mimo » 25 mars 2008, 13:16

Bonjour à tous,

Voila je voudrais savoir comment faire pour bloquer une partie d'un texte dans un textarea, je m'explique:

J'ai un textarea qui commence automatiquement par : "TOUS :" (sans les guillemets biensur .. ;-))

Et je voudrais que celui qui consultera ne puisse pas effacer ce mot, et qu'il puisse donc commencer à écrire après : TOUS :

Quel est la méthode en javascript pour bloquer cette partie du texte ?

Merci d'avance.