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

ASP.NET Discussion :

textbox -- enabled=false -- lorsque checkbox est coché


Sujet :

ASP.NET

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    316
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2010
    Messages : 316
    Points : 155
    Points
    155
    Par défaut textbox -- enabled=false -- lorsque checkbox est coché
    Bonjour,

    J'ai un CheckBox (Case à cocher) avec ID="chckMemeValeur"

    j'ai aussi un textbox avec ID: id="mAddress1GTextBox"


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <asp:CheckBox ID="chckMemeValeur" runat="server" Text=" Cochez ici" onclick="javascript:clickMe(this)"></asp:CheckBox>
    <asp:textbox id="mAddress1GTextBox" runat="server" style="text-transform:uppercase" ></asp:textbox>

    Si l'utilisateur ne coche pas mon checkbox, il peut ecrire dans textbox. S'il coche le checkbox, le textbox se verrouille...

    alors pour cela ce que je fais avec JavaScript :

    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
     function clickMe(CheckBox)
        {
            if(CheckBox.checked)
            {
                document.getElementById("mAddress1GTextBox").enabled = false;
     
     
     
     
     
     
            }
            else
            {
                document.getElementById("mAddress1GTextBox").enabled = true;
            }
        }
    Mais ça marche pas lorsque checkbox est coché : textbox ne se verrouille pas... Est-ce que vous savez que je dois faire ? Où je fais la bêtise ?

  2. #2
    Membre régulier
    Homme Profil pro
    Informaticien
    Inscrit en
    Février 2011
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Suisse

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Février 2011
    Messages : 53
    Points : 83
    Points
    83
    Par défaut
    Bonjour,

    voici un site intéressant et qui devrait répondre à tas question :

    http://www.velocityreviews.com/forum...-question.html

    Bon code

  3. #3
    Membre éclairé Avatar de Pilru
    Homme Profil pro
    Dev ASP.NET/jQuery ; Admin ORACLE
    Inscrit en
    Septembre 2007
    Messages
    491
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Dev ASP.NET/jQuery ; Admin ORACLE

    Informations forums :
    Inscription : Septembre 2007
    Messages : 491
    Points : 833
    Points
    833
    Par défaut
    mAddress1GTextBox correspodant a l'ID du contrôle serveur. Sur le client, l'ID de l'input correspond a mAddress1GTextBox.ClientID :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    function clickMe(CheckBox)
        {
            if(CheckBox.checked)
            {
                document.getElementById("<%=mAddress1GTextBox.ClientID %>").enabled = false;
            }
            else
            {
                document.getElementById("<%=mAddress1GTextBox.ClientID %>").enabled = true;
            }
        }

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    316
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2010
    Messages : 316
    Points : 155
    Points
    155
    Par défaut
    Citation Envoyé par Pilru Voir le message
    mAddress1GTextBox correspodant a l'ID du contrôle serveur. Sur le client, l'ID de l'input correspond a mAddress1GTextBox.ClientID :
    Bonjour Pilru,

    tu pourrais m'expliquer un peu plus sur ton exemple...

    En fait j'ai trouvé la solution qui marche... Mais je ne comprends pas ce que tu as dit....

    Voici ma solution :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    function clickMe(CheckBox)
        {
            if(CheckBox.checked)
            {
                document.getElementById("mAddress1GTextBox").disabled = true; 
            }
            else
            {
                document.getElementById("mAddress1GTextBox").disabled = false; 
            }
        }
    Merci BuchsPa, je vais voir ton site...

    Bonne journée

  5. #5
    Membre chevronné
    Inscrit en
    Mai 2006
    Messages
    1 364
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 1 364
    Points : 1 984
    Points
    1 984
    Par défaut
    Citation Envoyé par aspkiddy Voir le message
    Bonjour Pilru,

    tu pourrais m'expliquer un peu plus sur ton exemple...

    En fait j'ai trouvé la solution qui marche... Mais je ne comprends pas ce que tu as dit....
    Les controles peuvent etre renommés et ce que tu mets dans controle.ID n'est pas forcement l'id utilisé sur la page web qui sera envoyée au client. Or c'est l'ID sur la page qui doit etre utilisé dans le javascript. Pour cela, il faut donc utiliser controle.ClientID. Et le code posté par Pirlu ne fait qu'utiliser le bon nom.

    Dans tous les cas, il vaut mieux utiliser le code de Pirlu mais en remplacant enabled par disabled.

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    316
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2010
    Messages : 316
    Points : 155
    Points
    155
    Par défaut
    Mais l'histoire de disabled ou enabled n'est pas adaptable dans mon cas... Il fallait readonly...

    Les 2 ne sont pas éditables... La différence entre enabled et readonly : lorsque l'on envoie l'information le champ (textBox) en "disabled" ne contient plus de valeur par contre le champ en readonly contient de valeur (s'il y en a) lors de l'envoi... Je ne savais pas cette différence....


    alors voici la solution :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    function clickMe(CheckBox)
        {
            if(CheckBox.checked)
            {
                document.getElementById("mAddress1GTextBox").setAttribute("readonly", "true"); 
            }
            else
            {
                document.getElementById("mAddress1GTextBox").removeAttribute("readonly", "true"); 
            }
        }

    Bonne journée

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    316
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2010
    Messages : 316
    Points : 155
    Points
    155
    Par défaut
    Bonjour hwoarang et Pilru,

    Je suis désolé de vous dérangé mais il y a quelques chose que je ne comprends pas...

    Lorsque j'écris dans mon code "
    "<%=mAddress1GTextBox.ClientID %>"
    ou en ajoutant
    "<%= .ClientID %>"
    le code ne marche plus...

    alors je me demande pourquoi ça ne marche pas avec votre ajout ?
    Moi j'ai mis mon javaScript dans un autre fichier (check_box.js) et je fais le lien vers ce fichier dans frontend (dans le fichier aspx)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <script type="text/javascript" src="js/check_box.js"></script>
    Je n'ai pas mis le code javaScript dans backend (dans le fichier cs (aspx.cs))... Est ce que c'est à cause de cela ?

  8. #8
    Membre éclairé Avatar de Pilru
    Homme Profil pro
    Dev ASP.NET/jQuery ; Admin ORACLE
    Inscrit en
    Septembre 2007
    Messages
    491
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Dev ASP.NET/jQuery ; Admin ORACLE

    Informations forums :
    Inscription : Septembre 2007
    Messages : 491
    Points : 833
    Points
    833
    Par défaut
    "<%=mAddress1GTextBox.ClientID %>" ne peut être utilisé que dans une page aspx. Cela n'a aucun sens dans une ressource javascript.

    L'utilisation de ClientID peut être éviter avec le framework .NET 4 via la propriété ClientIdMode

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

Discussions similaires

  1. Exécuter une fonction lorsqu'une CheckBox est cochée
    Par slhOverFlow dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 10/09/2013, 22h13
  2. Afficher une div lorsqu'une checkbox est cochée
    Par nicolas2603 dans le forum jQuery
    Réponses: 3
    Dernier message: 05/02/2010, 17h15
  3. afficher une valeur sur une feuille lorsqu'une checkbox est cochée
    Par chrnoe dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 23/12/2008, 14h39
  4. Réponses: 5
    Dernier message: 23/03/2006, 12h41
  5. Vérifier si checkbox est cochée
    Par MYster dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 24/11/2005, 19h10

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