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 :

Fonction modifier texte dans formulaire


Sujet :

JavaScript

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 11
    Points : 9
    Points
    9
    Par défaut Fonction modifier texte dans formulaire
    Bonjour

    Je possède un forum et j'ai crée une fonction afin de mettre automatiquement les balises [img] et [/img] autour des url image dans le formulaire de rédaction d'un message.
    La fonction fonctionne très bien.....mais uniquement lorsque chaque url est diffèrente.
    Lorsque deux url sont identiques toutes balises sont mises sur la première URL.

    Par exemple, si j'ai un texte comme ca :
    htpp://image.jpg
    http://image.jpg
    La fonction va m’écrire :
    [img][img]htpp://image.jpg[/img][/img]
    http://image.jpg</lien>
    Au lieu de :
    [img]htpp://image.jpg[/img]
    [img]htpp://image.jpg[/img]

    Voila le code de la fonction :

    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
    22
     
    function bbauto()
    {
     
    var textarea = document.getElementById(text_name).value;
     
    var reg=new RegExp("(^(https?)://.*\.(jpg|gif|png|jpeg|bmp)$)", "gi");
    var reg_sep=new RegExp(" |\,|\;|\r\n|\r|\n", "g");
     
    var tableau = textarea.split(reg_sep);
     
    for (var i=0; i<tableau.length; i++) {
     
    	if (tableau[i].match(reg)) 
    	{
    		var new_lien = tableau[i].replace(reg,'[img]' + tableau[i] + '[/img]');
     
    		document.getElementById(text_name).value = document.getElementById(text_name).value.replace(tableau[i],new_lien);
    	}
     
    }
    }

    Comment pourrais-je modifier cette fonction afin d'avoir le rendu attendu ?
    J'espère que vous pourrez m'aider.

    Merci beaucoup par avance

    Cordialement

    Foyout

  2. #2
    Membre chevronné

    Homme Profil pro
    Ingénieur Hospitalier
    Inscrit en
    Juillet 2004
    Messages
    993
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Hospitalier
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 993
    Points : 1 768
    Points
    1 768
    Billets dans le blog
    1
    Par défaut
    Salut je te conseil de tout écrire tes textes du area dans une nouvelle variable que tu concataine et tu réécrit dans ton élément html après ta boucle.

    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
    22
    23
    24
    25
    26
     
    function bbauto(){
     
    var textarea = document.getElementById(text_name).value;
    var new_lien = new Array();
     
    var reg=new RegExp("(^(https?)://.*\.(jpg|gif|png|jpeg|bmp)$)", "gi");
    var reg_sep=new RegExp(" |\,|\;|\r\n|\r|\n", "g");
     
    var tableau = textarea.split(reg_sep);
     
    	for (var i=0; i<tableau.length; i++) {
     
    		if (tableau[i].match(reg)) 
    		{
    			new_lien += tableau[i].replace(reg,'[img]' + tableau[i] + '[/img]')+"\r";
     
    		}else{
     
    			new_lien += tableau[i]+"\r";
    		}
     
    	}
    	document.getElementById(text_name).value = new_lien;
     
    }
    Bonne soirée

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 11
    Points : 9
    Points
    9
    Par défaut
    Merci pour ta réponse.
    Effectivement, cela fonctionne très bien pour le cas ou tous les liens sont à la ligne.

    Par contre, je souhaiterais que cette fonction s'applique sur tout un message rédigé par le membre. Donc le lien peut être au milieu d'une phrase ou d'un paragraphe et pas forcement à la ligne.
    Avec ce code, si j'applique cette fonction sur un message, tous les mots vont aller à la ligne.
    Est ce qu'il y aurait une possibilité de modifier le lien en place, en gardant la structure du message ? Il faudrait prendre en compte les points, virgule, saut de ligne, retour à la ligne, etc.

    (Il y a peut être quelque chose à modifier sur le split afin de garder le l'élément qui sert de coupure)

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 11
    Points : 9
    Points
    9
    Par défaut
    Je marque le sujet comme résolu.
    Je suis finalement passé par un autre système qui n'utilise pas de split.

  5. #5
    Membre chevronné

    Homme Profil pro
    Ingénieur Hospitalier
    Inscrit en
    Juillet 2004
    Messages
    993
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Hospitalier
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 993
    Points : 1 768
    Points
    1 768
    Billets dans le blog
    1
    Par défaut
    Salut pour info, j'ai modifié le code entre temps, donc il s'applique sur un textArea entièrement.

    Bonne soirée.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Nommer zones de texte dans formulaire dynamique
    Par supertoms dans le forum IHM
    Réponses: 1
    Dernier message: 19/04/2008, 18h36
  2. Modifier texte dans fichier fla
    Par vincent monaco dans le forum Flash
    Réponses: 1
    Dernier message: 14/01/2008, 10h06
  3. Concaténer fonction et texte dans une cellule
    Par Dsphinx dans le forum Excel
    Réponses: 4
    Dernier message: 07/08/2007, 09h16
  4. [Dreamweaver] Modifier texte dans une image
    Par Aspic dans le forum Dreamweaver
    Réponses: 4
    Dernier message: 13/04/2007, 17h17
  5. Variable qui évolue en fonction des choix dans formulaire
    Par stefou007 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 06/09/2005, 22h40

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