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

jQuery Discussion :

La fonction clone supprime action sur un select


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2007
    Messages
    282
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Gers (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Octobre 2007
    Messages : 282
    Par défaut La fonction clone supprime action sur un select
    Bonjour à tous.

    Je suis en train de developper une application via le framework PhP cakephp. Dans mon back office, je souhaite ajouter un membre dans un groupe. Cependant ce membre peut avoir une ou plusieurs fonctions et nom de fontions.
    J'ai donc faire mon script, cela fonctionne mais j'ai un soucis avec jquery et notament avec la fonction clone.
    J'ai créé ce bout de code afin de cloner les champs présents dans une div et l'incrémenté. Voici mon code:
    Code javascript : 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
    $(function() {
    	var currentCount=1;
    	$('#addfonction').click(function(){
    	            currentCount = cloning('.clone', '.clonage', currentCount);
    	            return false;
    	});
    	function cloning(from, to, counter) 
    	{
    	    var clone = $(from).clone();
    	    counter++;
    	    clone.find(':input').each(function() {
    	        var name = $(this).attr('name').replace(1,counter);
    	        var id = $(this).attr('id').replace(1,counter);
    	        $(this).attr({'name': name, 'id': id}).val('');
    	    });
    	    clone = clone.html().replace(1,counter);
    	    $(to).append(clone);
    	    return counter;
    	}
    });
    Le clonage fonctionne, mais le hic, c'est que l'ensemble des actions javascripts qui sont normalement exécuté sur ce 2nd select ne fonctionne pas.
    Plutot qu'un long discours, regardez l'exemple en ligne: http://heureschrono.free.fr/debug/application_mairie/ (partie "liste des fonctions). Quand on clique sur ajouter une fonction, le champs ce clone bien, mais le select créer ne fonctionne pas.

    Auriez vous une idée?

    merci d'avance
    lemirandais

  2. #2
    Membre Expert Avatar de Lorenzo77
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    1 472
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 472

  3. #3
    Membre éclairé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2007
    Messages
    282
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Gers (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Octobre 2007
    Messages : 282
    Par défaut
    Avant de poster ici, j'ai testé mais ni le "simple true", ni le "double true" ne fonctionne. J'avais déjà eu le soucis avec un autre code, et en mettant true, true, cela avait fonctionné, mais là, je ne trouve pas.

    D'autres idées.
    Merci en tout cas pour cette réponse.


    lemirandais

  4. #4
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var clone = $(from).clone();
    C'est bien, tu construis correctement ton clone.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    clone = clone.html().replace(1,counter);
    Sauf que si tu l'écrases avant de l'insérer, ben ça sert pas à grand chose !
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  5. #5
    Membre éclairé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2007
    Messages
    282
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Gers (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Octobre 2007
    Messages : 282
    Par défaut
    Ok, je comprend ce que tu me dis, mais je ne vois pas comment corriger.

    lemirandais

  6. #6
    Membre Expert
    Avatar de Loceka
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    2 276
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 2 276
    Par défaut
    A mon avis tu n'as pas bien compris ce qu'il t'a dit.

    la fonction (String).replace(...) retourne un string. Du coup ta variable clone devient un String avant que tu l'insères dans ta page.

    Il faudrait donc que tu fasses (je ne connais pas jQuery donc je ne peux que supposer que ça marche):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    clone.html() = clone.html().replace(1, counter);

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

Discussions similaires

  1. Supprimer une chaine entre parenthese sur un select
    Par sebg42 dans le forum SQL Procédural
    Réponses: 4
    Dernier message: 26/06/2007, 19h07
  2. Réponses: 2
    Dernier message: 18/01/2007, 17h14
  3. Empêcher une action sur un select
    Par licorne dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 05/09/2006, 12h50
  4. 2 actions sur evenement onchange sur champ Select
    Par falz222 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 31/08/2006, 20h59
  5. chargement de photos sur action d'un <select>
    Par bibile dans le forum Général JavaScript
    Réponses: 15
    Dernier message: 20/12/2005, 19h04

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