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 :

Recopie automatique avec l'ID


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2008
    Messages
    391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2008
    Messages : 391
    Par défaut Recopie automatique avec l'ID
    Bonjour à tous et à toutes,

    Je débute en Javascript/Jquery et je voudrais recopier ma valeur d'un input sur les inputs suivants mais j'ai un petit soucis.

    En gros, quand l'ID est un chiffre, ca marche mais quand l'ID est par exemple "T1 - T2 - T3...", cela ne marche plus.

    Je ne vois pas où je dois changer le nom de l'ID :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $(".type_paiement").keydown(function(){
    	var id = $(this).attr("id");
    	var value = $("#"+id).val();
    	for (i = id; i < 24; i++)
    		$("#"+i).val(value);
    });

  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 : 55
    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... c'est normal...
    Dans ta boucle, i vaut successivement 1, 2, ..., 23, mais jamais T1, T2, ..., T23.

    Mon petit doigt me souffle qu'avec
    on devrait s'approcher d'une solution.

    Sinon, au passage :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var id = $(this).attr("id");
    var value = $("#"+id).val();
    Heu... à quoi ça te sert au juste de récupérer l'id d'un élément juste pour ensuite rechercher l'élément dont l'id est celui de l'élément que tu as déjà ?
    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 éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2008
    Messages
    391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2008
    Messages : 391
    Par défaut
    Mais même comme cela, ça ne marche pas ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    	 $(".type_paiement").keydown(function(){
    	  var id = $(this).attr("id");
    	  var value = $("#"+id).val();
     
    	  for (i = id; i < 24; i++)
    		  $("#T"+i).val(value);
    	 });
    Pour la deuxième question, si je ne verifie pas la copie ne marche pas

  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 : 55
    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
    Ah oui... j'avais pas vu que i vaut id...
    Contrairement à PHP par exemple, JavaScript ne sait pas incrémenter une chaine.
    Il faut que tu récupères la valeur numérique dans ton identifiant.
    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
    Étudiant
    Inscrit en
    Février 2008
    Messages
    391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2008
    Messages : 391
    Par défaut
    C'est à dire dans mon identifiant ?

  6. #6
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Billets dans le blog
    125
    Par défaut
    Bonsoir

    Exemple :

    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <input id="T1" type="number" min="0" max="24" value="1">
    <input id="T2" type="number" min="0" max="24" value="1">
    <input id="T3" type="number" min="0" max="24" value="1">
    <input id="T4" type="number" min="0" max="24" value="1">
    <input id="T5" type="number" min="0" max="24" value="1">

    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    var jObjInput = $( "input[type='number']" ),
    	m = jObjInput.length;
     
    /*
     * On intercepte l'événement "change".
     */
    jObjInput.on( "change", function(){
    	/*
    	 * n : on doit éliminer le "T" de l'ID et
    	 * faire un entier du reste du texte.
    	 */
        var n = parseInt( this.id.slice( 1 ), 10 ),
        	valeur = $( this ).val();
     
        /*
         * On donne cette valeur au éléments suivants.
         * 
         * i <= m : car n est base 1 comme m.
         */
    	for ( var i = ( n + 1 ); i <= m; i++ ){
     
    		/*
    		 * On reconstitue un ID "Tx" et on
    		 * change le contenu de l'attribut "value"
    		 * de cet élément du DOM.
    		 */
    		$( "#T" + i ).val( valeur );
        }	
    });

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  7. #7
    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 : 55
    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
    Mais dès que je change pour l'un, ca change pour le deuxième
    Certes, ceci dit, c'est aussi parce que c'est toi qui demandes de le faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $( "#T" + i ).val( valeur );
    $( "#C" + i ).val( valeur );


    Ensuite, tu peux essayer de récupérer l'indice et le préfixe dans ta fonction pour cibler les bons éléments.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var pref = this.id.replace(/\d/g, '');
    var nb = this.id.replace(/\D/g, '');
    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

  8. #8
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2008
    Messages
    391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2008
    Messages : 391
    Par défaut
    Je dois donc creer une nouvelle fonction !

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

Discussions similaires

  1. Recopie automatique en variable avec une boucle
    Par sbell dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 03/10/2014, 09h40
  2. Charger un module automatiquement avec des options debian
    Par ZiMo dans le forum Administration système
    Réponses: 4
    Dernier message: 22/12/2005, 14h22
  3. Numéro automatique avec PostgreSql
    Par BRAUKRIS dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 09/09/2005, 22h55
  4. Envoi de mail automatique avec Visual C++
    Par cza dans le forum MFC
    Réponses: 2
    Dernier message: 22/02/2005, 15h59
  5. Démarrage automatique avec xfce
    Par lunatix dans le forum Applications et environnements graphiques
    Réponses: 4
    Dernier message: 21/09/2004, 22h50

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