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 :

formulaire : bloquer des zones


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 249
    Par défaut formulaire : bloquer des zones
    bonjour,

    j'ai un formulaire avec une case à cocher et 3 boutons radio

    ce que je voudrais, c'est de bloqué l'accès aux boutons radio si la case à cochée est cochée => comment faire ?

  2. #2
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 931
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 931
    Par défaut
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <input type="checkbox" onclick="document.getElementById('radiobutton').style.display=(this.checked)?'none':'block'" />
     
    <div id="radiobutton">
       <input type="radio" />
       <input type="radio" />
       <input type="radio" />
    </div>

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 249
    Par défaut
    merci,

    mais je ne veux pas qu'ils disparaissent, je veux qu'ils deviennent inselectionnable...

    de plus, la case est cochée par defaut => a l'affichage pour la premiere fois de la page ça ne bloque pas mes radio boutons...

  4. #4
    Membre Expert
    Avatar de Gruik
    Profil pro
    Développeur Web
    Inscrit en
    Juillet 2003
    Messages
    1 566
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 566
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="checkbox" onclick="document.getElementById('radiobutton').disabled = this.checked;" />

  5. #5
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 931
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 931
    Par défaut
    Ben adapte le code, je t'ai montré la démarche.

    Tu as juste une boucle à faire sur les boutons radio présents dans le div radiobutton et de tous les basculer à disabled ...

    Et pour tester au chargement de ta page tu mets le test également dans le onload du body.

  6. #6
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 249
    Par défaut
    ok merci

    par contre j'aimerais faire une fonction CacheElement pour que ça soit plus simple à utiliser

    j'ai essayé ça mais ça n'a pas l'air de marcher :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <label><input type="checkbox" name="toto" checked="checked" onclick="CacheElement('element1')" /> Mode Auto</label><br/>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    function CacheElement(Nom) 
    			{
    				alert(Nom); 
    				document.getElementById(Nom).style.display=(this.checked)?'none':'block';	
    			}
    PS : desolé, je suis une quiche en javascript...

  7. #7
    Membre Expert
    Inscrit en
    Septembre 2002
    Messages
    2 307
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 307
    Par défaut
    Citation Envoyé par Emcy
    merci,

    mais je ne veux pas qu'ils disparaissent, je veux qu'ils deviennent inselectionnable...
    remplace disabled par readonly

  8. #8
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 249
    Par défaut
    readonly ne fonctionne a priori pas (contrairement a disable)

    actuellement ça fonctionne avec cette methode :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    function DisableElement(Nom) 
    			{
    				var boutons = document.getElementById(Nom).getElementsByTagName('input');
     
    				for(var i = 0; i <= boutons.length-1; i++)
    				{
    					boutons[i].disabled = document.Nomformulaire.NomCheckbox.checked;
    				}	
    			}
    => le probleme est qu'il faut rentrer le nom de la checkbox a chaque fois (donc perte de l'utilité d'utiliser une fonction) : comment faire ?

  9. #9
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Citation Envoyé par Matthieu2000
    remplace disabled par readonly
    Y a emmêlage, là, non ?

    A+

  10. #10
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var boutons = document.getElementById(ID);
    Seul IE permet la confusion entre NAME et ID !!

  11. #11
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 249
    Par défaut
    et je dois faire quoi alors...

  12. #12
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Donner un ID à ta checkbox et le passer en paramètre à la fonction (puisque c'est lui qui est attendu et non le name) ...

    A+

  13. #13
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 249
    Par défaut
    il me semble que tu n'as pas bien compris mon probleme...

    dans ma page j'ai :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <div id="GLOBALConf">
    							<p>
    								Data Transfer Rate :<br/>
    								<label><input type="radio" name="debit1" value="0" /> 10 Mbits/s</label><br/>
    								<label><input type="radio" name="debit1" value="1" checked="checked" /> 100 Mbits/s</label>							
    							</p>
     
    							<p>
    								Transmission Mode :<br/>
    								<label><input type="radio" name="duplex1" value="0" /> Half-Duplex</label><br/>
    								<label><input type="radio" name="duplex1" value="1" checked="checked" /> Full-Duplex</label>
    							</p>
     
    						</div>
    lorsque je clic sur une checkbox, je lance le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    function DisableElement() 
    			{
    				var myZone = document.getElementById('GLOBALConf');
    				myZone.disabled = true;							
    			}
    => sous IE7, ça me grise ma zone mais pas sous firefox...

  14. #14
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Citation Envoyé par Emcy
    il me semble que tu n'as pas bien compris mon probleme...
    Ben c'est à dire : je fais avec ce que j'ai, à savoir ton code !

    Si il change en off, je suis pas devin.
    L'ID en dur est une mauvaise idée.

    A+

  15. #15
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 249
    Par défaut
    ...j'ai fait un exemple simple pour que vous compreniez

    le probleme est que lorsque je mets disable à true (c'est la le probleme) ça ne fait rien sous firefox : que dois-je faire ?

  16. #16
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Si le code donné correspond à celui que tu testes, il n'y a aucune raison.
    Essaye toujours :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById('GLOBALConf').setAttribute("disabled",  "disabled");
    A+

  17. #17
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 249
    Par défaut
    ça fait exactement la meme chose
    => on dirait que firefox n'aime pas les disable sur un div..

    une autre solution ?

  18. #18
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 931
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 931
    Par défaut
    Disabled n'est pas un attribut d'un div ..

    Cf : http://giminik.developpez.com/xhtml/div.html

    Tu peux pour "simuler" cet état passer la couleur du background du div en gris.

  19. #19
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Citation Envoyé par Bisûnûrs
    Disabled n'est pas un attribut d'un div ..
    Effectivement, ce qui aurait été inquiétant c'es tque ça fonctionne

    Ceci dit, sur mon bete (++) IE 6, un disabled=true (et non disabled) sur un div disable effectivement les éléments qu'il contient.

    A+

Discussions similaires

  1. [Formulaire] Rechercher des données à l'aide d'une zone de texte
    Par rantanplan81 dans le forum VBA Access
    Réponses: 4
    Dernier message: 14/06/2007, 14h25
  2. Réponses: 11
    Dernier message: 08/06/2007, 16h45
  3. Réponses: 5
    Dernier message: 29/03/2007, 16h52
  4. bloquer des champs de formulaires
    Par reventlov dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 21/03/2006, 16h33
  5. contrôle des zones de liste dans formulaire
    Par philpaul dans le forum IHM
    Réponses: 4
    Dernier message: 25/11/2005, 23h28

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