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 :

Boucler sur une suite d'input de même class


Sujet :

jQuery

  1. #1
    Membre actif Avatar de arthuro45
    Profil pro
    Développeur du dimanche
    Inscrit en
    Juillet 2009
    Messages
    602
    Détails du profil
    Informations personnelles :
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur du dimanche

    Informations forums :
    Inscription : Juillet 2009
    Messages : 602
    Points : 265
    Points
    265
    Par défaut Boucler sur une suite d'input de même class
    Bonjour,

    J'ai une suite d'input dans une tableau html qui ont tous la même class : input_cmd.
    Au chargement de la page je cherche à dire : Si parmi tous les input certains ont une valeur différente de null alors je montre un bouton et inversement.
    J'ai tenté avec un each mais l'imbrication de mon code me semble douteuse.
    J'ai l'impression de ne pas savoir tester les valeurs du tableau "tab".

    Mon code test qui ne produit rien :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    var tab=new Array();
    var i = "";
         $('.input_cmd').each(function(){
            tab.push($(this).val());
         });
             for(var count=0; i<tab.length; i++) {
                 if(tab!="") { 
                                  $("#validerCde").css({"visibility": "visible"}); 
                 }
                 else { 
                                  $("#validerCde").css({"visibility": "hidden"}); 
                 }
              }

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 663
    Points
    66 663
    Billets dans le blog
    1
    Par défaut
    Au chargement de la page
    ce qui se traduit comment dans ton code ?

  3. #3
    Membre actif Avatar de arthuro45
    Profil pro
    Développeur du dimanche
    Inscrit en
    Juillet 2009
    Messages
    602
    Détails du profil
    Informations personnelles :
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur du dimanche

    Informations forums :
    Inscription : Juillet 2009
    Messages : 602
    Points : 265
    Points
    265
    Par défaut
    ce qui se traduit comment dans ton code ?
    Tu veux parler de l'événement déclencheur ?
    Le problème se situe pour 2 actions, l'une au 1er chargement de la page et l'autre quand une requête Ajax est exécutée. Il faudrait que la fonction s'exécute à ces 2 moments.

  4. #4
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 663
    Points
    66 663
    Billets dans le blog
    1
    Par défaut
    ben mets ce script dans une fonction
    appelle la une première fois sur le document ready :
    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
     
    function truc(){
    var tab=new Array();
    var i = "";
         $('.input_cmd').each(function(){
            tab.push($(this).val());
         });
             for(var count=0; i<tab.length; i++) {
                 if(tab!="") { 
                                  $("#validerCde").css({"visibility": "visible"}); 
                 }
                 else { 
                                  $("#validerCde").css({"visibility": "hidden"}); 
                 }
              }
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $(function(){
     truc();
    ...
    }
    et ensuite dans ton success

  5. #5
    Membre actif Avatar de arthuro45
    Profil pro
    Développeur du dimanche
    Inscrit en
    Juillet 2009
    Messages
    602
    Détails du profil
    Informations personnelles :
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur du dimanche

    Informations forums :
    Inscription : Juillet 2009
    Messages : 602
    Points : 265
    Points
    265
    Par défaut
    Cette fonction te semble fonctionner ?

    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 truc(){
    var tab=new Array();
    var i = "";
         $('.input_cmd').each(function(){
            tab.push($(this).val());
         });
             for(var count=0; i<tab.length; i++) {
                 if(tab!="") { 
                                  $("#validerCde").css({"visibility": "visible"}); 
                 }
                 else { 
                                  $("#validerCde").css({"visibility": "hidden"}); 
                 }
              }
    }

  6. #6
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 663
    Points
    66 663
    Billets dans le blog
    1
    Par défaut
    heu un id doit être unique sur la page
    ça ne semble pas etre les cas ??? vu que tu boucles

  7. #7
    Membre actif Avatar de arthuro45
    Profil pro
    Développeur du dimanche
    Inscrit en
    Juillet 2009
    Messages
    602
    Détails du profil
    Informations personnelles :
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur du dimanche

    Informations forums :
    Inscription : Juillet 2009
    Messages : 602
    Points : 265
    Points
    265
    Par défaut
    .input_cmd est une classe, je pensais que tous les input pouvaient avoir le même ??

  8. #8
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 663
    Points
    66 663
    Billets dans le blog
    1
    Par défaut
    oui mais là
    tu attribue le style toujours au même élément ?

  9. #9
    Membre actif Avatar de arthuro45
    Profil pro
    Développeur du dimanche
    Inscrit en
    Juillet 2009
    Messages
    602
    Détails du profil
    Informations personnelles :
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur du dimanche

    Informations forums :
    Inscription : Juillet 2009
    Messages : 602
    Points : 265
    Points
    265
    Par défaut
    Ce bouton n'existe qu'une seule fois dans dans la page.

    tu attribue le style toujours au même élément ?
    oui

  10. #10
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 663
    Points
    66 663
    Billets dans le blog
    1
    Par défaut
    ? a quoi bon boucler pour modifier le style ????

  11. #11
    Membre actif Avatar de arthuro45
    Profil pro
    Développeur du dimanche
    Inscrit en
    Juillet 2009
    Messages
    602
    Détails du profil
    Informations personnelles :
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur du dimanche

    Informations forums :
    Inscription : Juillet 2009
    Messages : 602
    Points : 265
    Points
    265
    Par défaut
    a quoi bon boucler pour modifier le style ????
    Si je trouve un input avec une valeur je modifie le style.

    Je chercher à boucler sur les input pas le bouton. Je m'y prend...mal ?

  12. #12
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 663
    Points
    66 663
    Billets dans le blog
    1
    Par défaut
    Oui mais là tu appliques le style à chaque fois, tu pourrais incrémenter une variable dans ta boucle et appliquer les style après une seule fois en dehors de la boucles ...

    mais bon avec jquery pas besoin de boucle
    avec la puissance des selecteurs il te suffit de recupérer la longueur d'une collection

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    function foo(){
    alert(($('.input_cmd[value=""]').length!=$('.input_cmd').length)?"il y a au moins une valeur renseignée":"tous les champs sont vides")
    }

  13. #13
    Membre actif Avatar de arthuro45
    Profil pro
    Développeur du dimanche
    Inscrit en
    Juillet 2009
    Messages
    602
    Détails du profil
    Informations personnelles :
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur du dimanche

    Informations forums :
    Inscription : Juillet 2009
    Messages : 602
    Points : 265
    Points
    265
    Par défaut
    avec la puissance des selecteurs il te suffit de recupérer la longueur d'une collection
    Effectivement c'est plus simple qu'une boucle.
    Le bouton est bien masqué au chargement de la page (tous les input sont vident), mais reste masqué quand je saisi une valeur dans un input, plus moyen de revoir le bouton.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    function foo(){
    $('.input_cmd[value=""]').length!=$('.input_cmd').length
    		?$("#validerCde").css({"visibility": "visible"}):$("#validerCde").css({"visibility": "hidden"});
    }
     
    $("document").ready(function()  {
    foo();
    ...

  14. #14
    Rédacteur
    Avatar de Arnaud F.
    Homme Profil pro
    Développeur COBOL
    Inscrit en
    Août 2005
    Messages
    5 183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur COBOL
    Secteur : Finance

    Informations forums :
    Inscription : Août 2005
    Messages : 5 183
    Points : 8 873
    Points
    8 873
    Par défaut
    Bonjour,

    il faut rajouter la gestion du clic sur tes input_cmd pour voir ton ID masqué réapparaître, c'est tout ce qui manque ici.

    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 foo(){
        $("#validerCde").css({"visibility":     
            ($('.input_cmd[value=""]').length!=$('.input_cmd').length 
             ? "visible"
             : "hidden")
        });
    }
     
    $('.input_cmd').click(function() {
        $("#validerCde").css({"visibility": "visible"});
    });
     
    $("document").ready(function()  {
    foo();
    ...

  15. #15
    Membre actif Avatar de arthuro45
    Profil pro
    Développeur du dimanche
    Inscrit en
    Juillet 2009
    Messages
    602
    Détails du profil
    Informations personnelles :
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur du dimanche

    Informations forums :
    Inscription : Juillet 2009
    Messages : 602
    Points : 265
    Points
    265
    Par défaut
    il faut rajouter la gestion du clic sur tes input_cmd pour voir ton ID masqué réapparaître, c'est tout ce qui manque ici.
    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 foo(){
        $("#validerCde").css({"visibility":     
            ($('.input_cmd[value=""]').length!=$('.input_cmd').length 
             ? "visible"
             : "hidden")
        });
    }
     
    $("document").ready(function()  {
    foo();
     
    $('.input_cmd').keyup(function() {
        foo();
    })
    ...
    J'ai adapté à mon besoin et ça fonctionne. Merci pour ton aide.

  16. #16
    Membre actif Avatar de arthuro45
    Profil pro
    Développeur du dimanche
    Inscrit en
    Juillet 2009
    Messages
    602
    Détails du profil
    Informations personnelles :
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur du dimanche

    Informations forums :
    Inscription : Juillet 2009
    Messages : 602
    Points : 265
    Points
    265
    Par défaut
    Je reviens rapidement sur cette fonction qui fonctionne sous ie6 mais pas sous ie8 ni firefox pour une raison inconnue :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    function affMasqBtn(){
        $("#validerCde").css({"visibility":     
            ($('.input_cmd[value=""]').length!=$('.input_cmd').length 
             ? "visible"
             : "hidden")
        });
    }

  17. #17
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 663
    Points
    66 663
    Billets dans le blog
    1
    Par défaut
    le visibility est il initialisé avant au niveau de tes .input_cmd

  18. #18
    Membre actif Avatar de arthuro45
    Profil pro
    Développeur du dimanche
    Inscrit en
    Juillet 2009
    Messages
    602
    Détails du profil
    Informations personnelles :
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur du dimanche

    Informations forums :
    Inscription : Juillet 2009
    Messages : 602
    Points : 265
    Points
    265
    Par défaut
    le visibility est il initialisé avant au niveau de tes .input_cmd
    Oui

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if($stockApresLivraison==0){ $disable = "style='visibility: hidden'"; } else { $disable = ''; }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="text" '.$disable.' name="'.$row['ascart'].'-'.$row['asdese'].'" value="" class="input_cmd" />
    Edit :

    le visibility est il initialisé avant au niveau de tes .input_cmd
    En fait non, le css de .input_cmd ne contient pas visibility.

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

Discussions similaires

  1. click sur une image - affichage <INPUT TEXT
    Par bilou95 dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 21/05/2007, 11h13
  2. [Excel/VBA] Requete SQL avec clause sur une suite de Cellule
    Par Myogtha dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 21/02/2007, 17h36
  3. [VBA-E] boucler sur une colonne
    Par ricoree78 dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 14/02/2007, 20h04
  4. Réponses: 12
    Dernier message: 26/08/2006, 11h29
  5. Boucler sur une table pour renommer des valeurs
    Par webwhisky dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 03/01/2006, 14h19

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