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 :

Effacement champs lors d'ajout d'autre


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2015
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2015
    Messages : 52
    Par défaut Effacement champs lors d'ajout d'autre
    Bonjour,

    Pour une publication, je peux avoir un ou plusieurs auteur/editeur.
    Donc dans le formulaire j'ai créer un bouton "+" pour pouvoir ajouter autant qu'il en faut.
    Tout fonctionne bien mais y a un hic.
    A chaque fois que le clique sur le bouton "+" pour ajouter un auteur, cela efface nom/prenom etc des autres auteurs déjà rempli ce qui est très gênant.

    Pourquoi cela ?
    Y a-t-il une parade et eviter cela ?

    Code coté HTML :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <div id="addInput_auteur" class="addInput_auteur"></div>
    	<label for="add_Author" class="label_aut+">
    		<input type="button" name="+" value="+" id="add_Author" class="btn_add" onclick="add_auteur();">
    	</label>

    Code coté JS
    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
    function add_auteur(){
    	var input = addInput_auteur.innerHTML;
    	//addInput.innerHTML = input + '<input type="text" name="ch_toto[]" />\n';
    	var text = '<label class="label_type_c">Type contribute:<abbr class="required" title="required">*</abbr>:';
    	text += '<SELECT name="ch_type_contr[]" id="ch_type_contr" size="1">';
    	text += '<option value="" >select</option>';
    	text += '<option value="author">author</option>';
    	text += '<option value="editor">editor</option>';
    	text += '<option value="both">both</option></select></label>';
    	text += '<label class="label_autN"> first name:<abbr class="required" title="required">*</abbr>:';
    	text += '<input type="text" name="ch_auteur_fn[]" id="ch_auteur_fn" maxlength="45"></label>';
    	text += '<label class="label_midN">mid. name:';
    	text += '<input type="text" name="ch_auteur_mn[]" id="ch_auteur_mn" maxlength="8"></label><br/>';
    	text += '<label class="label_lastN">last name:<abbr class="required" title="required">*</abbr>:';
    	text += '<input type="text" name="ch_auteur_ln[]" id="ch_auteur_ln" maxlength="45"></label>';
    	addInput_auteur.innerHTML = input + text + '\n<br>';
    }

    Merci de votre aide

  2. #2
    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
    Tout fonctionne bien mais y a un hic.
    Donc en fait, tout ne fonctionne pas bien quoi...

    A chaque fois que le clique sur le bouton "+" pour ajouter un auteur, cela efface nom/prenom etc des autres auteurs déjà rempli
    Oui, c'est exactement ce que tu demandes de faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    addInput_auteur.innerHTML = input + text + '\n<br>';
    Tu demandes bien de remplacer le contenu, pas de le concaténer à l'existant.
    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

  3. #3
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2015
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2015
    Messages : 52
    Par défaut
    Tout fonctionne bien mais y a un hic.
    Donc en fait, tout ne fonctionne pas bien quoi...
    Ba coté programmation, tout fonctionne, juste coté confort utilisateur

    Tu demandes bien de remplacer le contenu, pas de le concaténer à l'existant.
    Ah, et comment concatène les nouveaux champs à l'existant ?

  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
    Bah, en JavaScript, la concaténation, ça se fait avec +.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    addInput_auteur.innerHTML += input + text + '\n<br>';
    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 averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2015
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2015
    Messages : 52
    Par défaut
    Marche pas et c'est même pire.
    C'est efface toujours et au lieu d'ajouter 1 auteur ça ajoute 2.

    (désolé suis pas très bon en JS)

  6. #6
    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
    Arf... au temps pour moi, j'avais mal lu le code...

    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
    function add_auteur(){
    	var text = '<label class="label_type_c">Type contribute:<abbr class="required" title="required">*</abbr>:';
    	text += '<SELECT name="ch_type_contr[]" id="ch_type_contr" size="1">';
    	text += '<option value="" >select</option>';
    	text += '<option value="author">author</option>';
    	text += '<option value="editor">editor</option>';
    	text += '<option value="both">both</option></select></label>';
    	text += '<label class="label_autN"> first name:<abbr class="required" title="required">*</abbr>:';
    	text += '<input type="text" name="ch_auteur_fn[]" id="ch_auteur_fn" maxlength="45"></label>';
    	text += '<label class="label_midN">mid. name:';
    	text += '<input type="text" name="ch_auteur_mn[]" id="ch_auteur_mn" maxlength="8"></label><br/>';
    	text += '<label class="label_lastN">last name:<abbr class="required" title="required">*</abbr>:';
    	text += '<input type="text" name="ch_auteur_ln[]" id="ch_auteur_ln" maxlength="45"></label>';
    	addInput_auteur.innerHTML += text + '\n<br>';
    }
    Sauf qu'en faisant ça, tu obtiens des id identiques dans la page, ce qui n'est pas autorisé.
    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

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 23/06/2008, 11h26
  2. Copie table vers une autre et ajout d'autres champs
    Par oxygen240 dans le forum Requêtes
    Réponses: 2
    Dernier message: 23/02/2008, 22h45
  3. [MySQL] Donner un autre nom de champ lors d'une requête SELECT
    Par greg13 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 21/01/2008, 17h30
  4. garder les valeurs d'un champs texte après ajout d'autres
    Par ke2007 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 12/09/2007, 09h28
  5. valeur d'un champ de formulaire ajouté depuis une autre page
    Par manaboko dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 01/12/2005, 09h29

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