IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

script formulaire


Sujet :

JavaScript

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 3
    Par défaut script formulaire
    Bonjour, je suis débutant et je rencontre un probleme sur un script.
    J' ai une "textarea" ou la personne poste son message, avec des buttons" gras", "italiques".... qui ajoutent lorsqu on appuie dessu la balise <strong>, <em>....
    Mon probleme est de determiné a l' appui de ces buttons si c' est un début( type <strong>) ou une fin(type </strong>) de mise en caractère.
    Lorsque la personne appuie pour la premiere fois, on insere la balise <strong>
    Mais lorsqu elle rapuit, il faut inserer la balise </strong>

    Voila ma fonction:
    cliquer est initialiser a 0
    la fonction d appelle est onclick="stylo(cliquer)"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    function stylo(cliquer)
    {       
            if(cliquer==0)
    {     
    document.forms['texte'].elements['texto'].value=document.forms['texte'].elements['texto'].value + '<strong>';
    var det=0;
    }
            if(cliquer==1)
    {
    document.forms['texte'].elements['texto'].value=document.forms['texte'].elements['texto'].value + '</strong>';
    cliquer=0;
    }
           if(det==0)
    {
    cliquer=1;
    }
     
    return cliquer;
     
    }
    Malheureusement, cela me renvoie toujours la balise <strong>.............

    Voila merci d' avance pour votre aide!!!

  2. #2
    Membre éclairé
    Avatar de buzzkaido
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2004
    Messages
    821
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2004
    Messages : 821
    Par défaut
    Quand tu appelles ta fonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onclick="stylo(cliquer)"
    D'ou tu sors ta variable "cliquer" ?

    Pour ce genre de truc, le plus simple est d'inserer les deux balises d'un coup d'un seul : tu recupere la selection dans la textarea, et tu insere le debut avant et la fin apres

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 3
    Par défaut ok
    D' accord, tu veus dire que je selectionne dans la zone de saisie la partie que je veux mettre en gras, puis j' insere les balises <strong> devant et</strong> derriere?
    Dans ce cas la pourrait tu me preciser la fonction ou l'objet correspondant a la selection(la syntaxe, le nom, l utilisation...) Merci

    Pour la variable cliquer, je l' initialise a zero au debut du script.
    Lorsque la personne clique une premiere fois sur le boutton, la variable cliquer est egal a 0, donc c'est la balise <strong> qui est inserer. De plus, la variable prend alors la valeur 1, pour signaler " a deja ete cliquer". Comme ca, a l appel de la fonction lors d' un deuxieme clique, cette fois si cliquer est egal a 1, et la fonction affiche </strong>.La variable reprend alors la valeur zero. Enfin tout ceci théoriquement puisque sa ne marche pas............

  4. #4
    Membre éclairé
    Avatar de buzzkaido
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2004
    Messages
    821
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2004
    Messages : 821
    Par défaut
    Petite recherche google, et hop :

    http://semifershome.free.fr/semifer/...ble-ie-firefox

    Pour ce genre de truc qui est très classique (on le trouve dans plein de sites) google a forcement la réponse.

    Pour ton procleme avec la variable "cliquer", c'est que tu fais une grosse confusion entre la variable globale et l'argument de la fonction.

    Si tu ecris ça, ça devrait marcher :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    var cliquer = 0;
     
    function stylo()
    {       
       if(cliquer==0)
       {     
          document.forms['texte'].elements['texto'].value=document.forms['texte'].elements['texto'].value + '<strong>';
          cliquer = 1;
       }
       else
       {
          document.forms['texte'].elements['texto'].value=document.forms['texte'].elements['texto'].value + '</strong>';
          cliquer=0;
       }
    }

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 3
    Par défaut
    effetivement, comme cela, sa marche!!
    Je ne comprends pas pourquoi la fonction n' a pas d' argument. En effet, la fonction travail avec la variable "cliquer", elle a donc besoin de cette variable.
    Je croyais qu' a la fin d' une fonction, toutes les variables modifiées a l' intérieur
    se voyais detruite si on effectué pas un return pour retourner sa nouvelle valeur.
    Apparement non, merci encore pour cette aide cela me permet d' approfondir mes connaissances.

    J' ai une autre question: peut on formater du texte dans un formulaire, c' est a dire qu avec javascript, on cee une fonction qui a chaque touche presser, cela reaffiche le caractere ds le meme formulaire.
    Autrement dit, des balises <strong>, <em>.... peuvent elle mettre du texte en gras, italique a l' interieur meme du formulaire? Cela permettrai d' avoir directement la visualisation de l' article que l' on poste, un peu comme sous word!
    Apres pas mal de teste, je pense que cela n' est malheureusement pas possible!!!
    Merci d' avance de m' eclairer sur ce sujet!!!

  6. #6
    Membre éclairé
    Avatar de buzzkaido
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2004
    Messages
    821
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2004
    Messages : 821
    Par défaut
    Je ne comprends pas pourquoi la fonction n' a pas d' argument. En effet, la fonction travail avec la variable "cliquer", elle a donc besoin de cette variable.
    Pas du tout ! Tu confonds "argument de la fonction" et "variable globale"

    Ta variable "cliquer", si elle est declarée en dehors de toute fonction, elle est globale.

    Globale, ça veut dire qu'elle est accessible partout, donc dans la fonction. Et si elle est modifiée, elle est modifiée partout.

    Un argument n'existe que dans la fonction.

    Par exemple, tu peux faire ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    var variableGlobale = 0;
     
    function test(argument)
    {
       alert("variableGlobale=" + variableGlobale);
       alert("argument=" + argument);
     
       variableGlobale = variableGlobale  + 1;
       argument = 0;
     
       alert("variableGlobale=" + variableGlobale);
       alert("argument=" + argument);
    }
     
    // On passe 5 en argument
    test(5);
     
    // On passe 10 en argument
    test(10);
    Ca t'aidera à comprendre.

    Pour le return, ça ne modifie rien du tout.

    C'est juste que si tu fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    function test(argument)
    {
       return (argument + 1);
    }
     
    // On passe 5 en argument et on stocke le resultat dans "variable"
    variable = test(5);
    alert("variable = " + variable);
     
    // On passe 10 en argument et on stocke le resultat dans "variable"
    variable = test(10);
    alert("variable = " + variable);
    la fonction "test" RENVOIT son argument + 1, il faut donc le stocker quelque part si tu veux l'utiliser.

Discussions similaires

  1. Script formulaire de recherhe comme google et yahoo
    Par fhardi dans le forum Bibliothèques & Frameworks
    Réponses: 0
    Dernier message: 15/12/2010, 19h55
  2. [MySQL] La 1ère exécution du script/formulaire indique qu'il n'y a pas de résultat
    Par kev484 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 04/07/2008, 17h53
  3. Aide pour script formulaire
    Par marcelin dans le forum Webdesign & Ergonomie
    Réponses: 1
    Dernier message: 29/01/2008, 15h25
  4. script formulaire page de remerciement
    Par lio63 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 07/11/2007, 15h34
  5. script formulaire
    Par valy62 dans le forum Langage
    Réponses: 1
    Dernier message: 13/07/2006, 03h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo