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 :

Détecter un input désactivé (grisé)


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2012
    Messages
    82
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2012
    Messages : 82
    Par défaut Détecter un input désactivé (grisé)
    Bonjour à tous,

    J'aimerais bien savoir comment peut-on détecter un input que l'on a désactivé dans un traitement en js, pour qu'à la fin le cacher, voilà le code qui désactive mes inputs:
    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
    var e = document.getElementById("metformine");
    	var elem_nbr_metformine = document.getElementById("nbr_metformine");
     
    	function calcul_mgj() {
     
    		var list_idx = e.options[e.selectedIndex].index;
    		var elem_nb_mg = e.options[e.selectedIndex].text;
    		var nb_mg = parseFloat(elem_nb_mg);
     
    		var elem_dose = document.getElementById("nbr_metformine");
    		var dose = parseFloat(elem_dose.value);
     
    		var elem_result = document.getElementById("dose_metformine");
     
    		if (elem_dose.value != ''){
    			elem_result.value = parseFloat(nb_mg * dose);
    		}
     
    		e2.disabled=(list_idx > 0);
            elem_nbr_stagid.disabled=(list_idx > 0);
     
    	}
    	elem_nbr_metformine.addEventListener("blur", calcul_mgj);
    	e.addEventListener("change", calcul_mgj);
    Là donc, je veux que mon fichier php (qui traite le formulaire où il y a ce bout de code en js) qu'il detecte les <input> et <select> desactivés

    Merci d'avance

  2. #2
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 205
    Par défaut
    Bonjour,
    pourquoi ne pas les cacher quand tu les désactives

  3. #3
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2012
    Messages
    82
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2012
    Messages : 82
    Par défaut
    Je te remercie pour ta réponse, en fait j'ai une liste de traitement qui sont tous activé au début, mais quand je choisi un traitement en choisissant une valeur d'une des listes déroulantes, toutes les autres se désactivent ainsi que leurs inputs qui leurs correspondent, du coup, quand je fini de remplir tout mon formulaire et je valide, je veux afficher dans la page qui suit la validation, juste le traitement choisi. Dans la partie traitement, il y a 7 checkboxs qui ont l'effet du bouton radio, et que lorsque je coche une case a cocher, une div avec des listes deroulantes et champs de type number qui défile. Lors de la validation je récupère la valeur du chekbox choisi pour afficher la div qui lui correspond, sauf que cette div affiche tout ce qui a dedans

  4. #4
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 205
    Par défaut
    Tu peux utiliser la méthode querySelectorAll pour récupérer les INPUT disabled/enabled, cette méthode retourne une nodeList il te suffira donc de la parcourir.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var lstInputs = document.querySelectorAll("input:enabled");  // enabled par exemple
    var lstInputs = document.querySelectorAll("input:disabled"); // ou disabled par exemple

  5. #5
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2012
    Messages
    82
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2012
    Messages : 82
    Par défaut
    Bonsoir NoSmoking,

    j'ai pas réussi a récupérer les input désactivés, j'ai mis la variable lstInputs dans un message d'alert comme ci-dessous et rien mon alert ne s'affiche pas:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    var lstInputs = document.querySelectorAll("input:disabled");
    for (var i = 0; i < lstInputs.length; ++i) {
      var item = lstInputs[i];  
      alert(item);
    }

  6. #6
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 205
    Par défaut
    Quel est ton environnement de développement, si c'est IE8 c'est normal le sélecteur doit être un sélecteur CSS2 or input:disabled est un sélecteur CSS3.

    Dans ce cas il y a lieu de remplacer le input:disabled par un input[disabled] mais point de salut avec cette méthode pour IE7 !

    pour test:
    Code html : 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
    <!DOCTYPE html>
    <html lang="fr">
    <head>
    <meta charset="UTF-8">
    <title>[querySelectorAll]</title>
    </head>
    <body>
      <input value="un" disabled>
      <input value="deux">
      <input value="trois">
      <input value="quatre" disabled>
    <script>
    var lstInputs = document.querySelectorAll('input[disabled]'); // compatible IE8
    var i, nb = lstInputs.length;
    for( i=0; i< nb; i++){
      lstInputs[i].style.backgroundColor = '#BCD';
    }
    </script>
    </body>
    </html>

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 16/05/2008, 08h57
  2. champ désactivé gris
    Par illegalsene dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 04/05/2006, 23h02
  3. Désactiver un champ input par rapport à un autre
    Par guilhemr dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 11/04/2006, 16h35
  4. Désactiver saisie dans un input d'une table
    Par dehbi dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 21/03/2006, 18h11
  5. Désactivation input impossible.
    Par licorne dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 03/02/2006, 15h40

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