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 :

Un DISABLED récalcitrant !


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif Avatar de Zebulon777
    Homme Profil pro
    Informaticien
    Inscrit en
    Février 2005
    Messages
    1 319
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Février 2005
    Messages : 1 319
    Points : 286
    Points
    286
    Par défaut Un DISABLED récalcitrant !
    Bonjour tout le monde.

    Je m'arrache les cheveux depuis 2 jours pour un truc surement tout bête, mais je cale.
    Je veux rendre des radios inactifs ou actifs en fonction d'une condition.
    J'ai essayé en javascript et JQuery, mais ça ne change rien.
    Voici mon code.

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <div id="DivRadioSegPortes">
    	<div id="DivRadioSegPortesTitre">
    		<label id="lblRadioSegPortes" class="bold">Condition appliquée entre chaque segments ET / OU : </label>
    		<radio name="SegPortes" id="RadioSegPorOU" traitement="true">Segments portes OU</radio>
    		<radio name="SegPortes" id="RadioSegPorET" traitement="true">Segments portes ET</radio>
    	</div>
    </div>

    Cette partie fonctionne impec que ce soit en Javascript ou en JQuery
    Code jquery : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    /* Segments portes ET ou OU*/
    document.getElementById("RadioSegPorOU").checked = true;
    //document.getElementById("RadioSegPorET").setAttribute("disabled","disabled");
    //document.getElementById("RadioSegPorOU").setAttribute("disabled","disabled");
    $("#RadioSegPorOU").attr("disabled", "disabled");
    $("#RadioSegPorET").attr("disabled", "disabled");

    Mais là, ça ne fonctionne plus (j'ai essayé aussi en javascript et en jquery) :
    Code jquery : 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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
     
    ...
    ...
    ...
    $(document).ready(function()
    {
    	let lblToUpdate = document.getElementById("lblNbSegL2E");
    	lblToUpdate.innerHTML = "Sélection : " + seg.options.length + " segment";
    	if (seg.options.length != 1)
    	{
    		lblToUpdate.innerHTML = lblToUpdate.innerHTML + "s";
    	};
    	ConditionSegEtOu(seg.options.length);
    });
    ...
    ...
    ...
    function ConditionSegEtOu(P_NbSeg) {
     
    console.log("P_NbSeg="+P_NbSeg);			
     
    	if (P_NbSeg >= 2) // => Il y a au moins 2 segments polarisés sélectionnés => Activation des radios radioSegPortET et radioSegPortOLU
    	{
     
    console.log("1");				
    		$("#RadioSegPorET").removeAttr("disabled");
    		$("#RadioSegPorOU").removeAttr("disabled");
    	}
    	else
    	{
    console.log("2");				
    		$("#RadioSegPorET").attr("disabled","disabled");
    		$("#RadioSegPorOU").attr("disabled","disabled");
    		document.getElementById("RadioSegPorOU").checked = true;
    	};
    }
     
    La même fonction en javaascript
    function ConditionSegEtOu(P_NbSeg) {
     
    console.log("P_NbSeg="+P_NbSeg);			
     
    	if (P_NbSeg >= 2) // => Il y a au moins 2 segments polarisés sélectionnés => Activation des radios radioSegPortET et radioSegPortOLU
    	{
     
    console.log("1");				
    		document.getElementById("RadioSegPorET").disabled = false;
    		document.getElementById("RadioSegPorOU").disabled = false;
    	}
    	else
    	{
    console.log("2");				
    		document.getElementById("RadioSegPorET").disabled = true;
    		document.getElementById("RadioSegPorOU").disabled = true;
    		document.getElementById("RadioSegPorOU").checked = true;
    	};
    }

    Quand il y a plusieurs segments dans la liste, le console.log("1") s'affiche bien, mais les radios restent désespérément grisé.

    Je ne vois pas du tout ce qui ne va pas...

    Merci d'avance pour votre aide.
    Zeb'...

  2. #2
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 257
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 257
    Points : 15 562
    Points
    15 562
    Par défaut
    avec jQuery, essayez cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $("input").attr("disabled", true); // pour désactiver
    $("input").attr("disabled", false); // pour réactiver

  3. #3
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 007
    Points : 44 228
    Points
    44 228
    Par défaut
    Bonjour,
    tu la sort d'où cette balise HTML <radio> ?

  4. #4
    Membre actif Avatar de Zebulon777
    Homme Profil pro
    Informaticien
    Inscrit en
    Février 2005
    Messages
    1 319
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Février 2005
    Messages : 1 319
    Points : 286
    Points
    286
    Par défaut
    Citation Envoyé par mathieu Voir le message
    avec jQuery, essayez cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $("input").attr("disabled", true); // pour désactiver
    $("input").attr("disabled", false); // pour réactiver
    Ca ne fonctionne pas mieux
    Je ne comprends pas du tout ce qu'il se passe !

    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
     
    function ConditionSegEtOu(P_NbSeg) {
     
    console.log("P_NbSeg="+P_NbSeg);			
     
    	if (P_NbSeg >= 2) // => Il y a au moins 2 segments polarisés sélectionnés => Activation des radios radioSegPortET et radioSegPortOLU
    	{
    console.log("1");				
    //		document.getElementById("RadioSegPorET").disabled = false;
    //		document.getElementById("RadioSegPorOU").disabled = false;
    		$("RadioSegPorET").attr("disabled", false);
    		$("RadioSegPorOU").attr("disabled", false);
    	}
    	else
    	{
    console.log("2");				
    //		document.getElementById("RadioSegPorET").disabled = true;
    //		document.getElementById("RadioSegPorOU").disabled = true;
    		$("RadioSegPorET").attr("disabled", true);
    		$("RadioSegPorOU").attr("disabled", true);
    		document.getElementById("RadioSegPorOU").checked = true; // C'est toujours OU par défaut.
    	};
    }

    Citation Envoyé par NoSmoking Voir le message
    Bonjour,
    tu la sort d'où cette balise HTML <radio> ?
    En fait nous utilisons un fichier XML pour générer nos pages html, donc c'est juste un mot clé.
    Zeb'...

  5. #5
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 257
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 257
    Points : 15 562
    Points
    15 562
    Par défaut
    il manque des "#" dans les sélecteurs de votre dernier message.

  6. #6
    Membre actif Avatar de Zebulon777
    Homme Profil pro
    Informaticien
    Inscrit en
    Février 2005
    Messages
    1 319
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Février 2005
    Messages : 1 319
    Points : 286
    Points
    286
    Par défaut
    Oups ! Ha oui, effectivement. Merci.
    J'ai corrigé, mais ça ne change rien.

    Le console.log("1") s'affiche bien, mais les radios restent toujours grisés.

    C'est une histoire fou !
    Zeb'...

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

Discussions similaires

  1. Update récalcitrant !
    Par Jeannotc dans le forum Bases de données
    Réponses: 10
    Dernier message: 16/06/2004, 18h28
  2. DISABLE VALIDATE
    Par blids dans le forum Administration
    Réponses: 6
    Dernier message: 27/05/2004, 15h21
  3. Un "0" récalcitrant
    Par bidson dans le forum XMLRAD
    Réponses: 4
    Dernier message: 20/04/2004, 13h56
  4. Couleur d'une JComboBox disabled
    Par ced dans le forum Composants
    Réponses: 6
    Dernier message: 06/01/2004, 15h33
  5. Erreur cannot focus a disabled or invisible window
    Par Andry dans le forum Composants VCL
    Réponses: 3
    Dernier message: 17/12/2003, 07h33

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