ASP TextBox se vidant sur un click

Résolu
Messages postés
48
Date d'inscription
mardi 7 octobre 2003
Statut
Membre
Dernière intervention
9 décembre 2008
-
Messages postés
860
Date d'inscription
jeudi 4 mars 2004
Statut
Membre
Dernière intervention
19 août 2014
-
Bonjour à tous!

J'ai un petit problème de control sur l'une de mes pages web.

Sur celle-ci, il y a 2 controls TextBox comme suit :

J'aimerai que lorsque je clique ou modifie le contenu de l'un des champ, l'autre se vide, et inversement.

Mais impossible de trouver des événements pour un textbox me permettant de le faire...

Qq1 aurait-il une idée sur la solution que je pourrais employer?

Je vous remercie d'avance pour vos réponses!

A bientôt!

5 réponses

Messages postés
48
Date d'inscription
mardi 7 octobre 2003
Statut
Membre
Dernière intervention
9 décembre 2008
2
Ok, voici ma solution :

Le onClientClick n'existe pas ou en tout cas n'est pas pris en charge par mon framework (2.0) ou par mon système.
Mes ID sont les mêmes après génération de la page aspx.

Donc, on a sur la page ASPX :

Le onClick ne sera pas reconnu comme un événement par la plateforme VisualStudio, mais il restera dans le code généré dans le navigateur qui lui ira chercher la fonction dans une partie JavaScript de la page ou dans un fichier annexe JavaScript si il a été déclaré avant. C'est une bonne chose à savoir : on peut donc utiliser du JavaScript dans une page ASPX!

Et en JavaScript la fonction suivante :

ClearTextBox(ID_TextBox)
{
   // Si le navigateur gère les éléments par ID
   if(document.getElementById(ID_TextBox))
   {
         switch(ID_TextBox)
         {
               // S'il s'agit de l'élément ABO_MAIL, on efface la valeur de l'autre
               case 'ABO_MAIL':
                     document.getElementById('DESABO_MAIL').value='';

               // S'il s'agit de l'élément DESABO_MAIL, on efface la valeur de l'autre
               case 'DESABO_MAIL':
                     document.getElementById('ABO_MAIL').value='';
         }
   }
   // Sinon on ne fait rien
}

Voilà!

J'espère que c'est clair et merci pour l'aide!

A bientôt!
Messages postés
48
Date d'inscription
mardi 7 octobre 2003
Statut
Membre
Dernière intervention
9 décembre 2008
2
Oups... Faute de prog sur le switch. Il faut bien sur ne pas oublier les break! (on peut utiliser un IF mais je préfère le SWITCH car j'utilise en fait plusieurs controls que je réinitialise en même temps!)


ClearTextBox(ID_TextBox)
{
   // Si le navigateur gère les éléments par ID
   if(document.getElementById(ID_TextBox))
   {
         switch(ID_TextBox)
         {
               // S'il s'agit de l'élément ABO_MAIL, on efface la valeur de l'autre
               case 'ABO_MAIL':
                     document.getElementById('DESABO_MAIL').value='';
                     break;

               // S'il s'agit de l'élément DESABO_MAIL, on efface la valeur de l'autre
               case 'DESABO_MAIL':
                     document.getElementById('ABO_MAIL').value='';
                     break;
         }
   }
   // Sinon on ne fait rien
}






 


 
Messages postés
860
Date d'inscription
jeudi 4 mars 2004
Statut
Membre
Dernière intervention
19 août 2014
29
Moi j'opterais pour la solution javascript ^^
Pour ce faire, il te suffit d'ajouter l'attribut onClientClick sur ton textbox qui donnerait par exemple :

J'ai mis id_du_boutton car l'id ABO_MAIL sera changé par asp.net. Pour connaître l'identifiant de celui-ci à la sortie, il te suffit de regarder la propriété ABO_MAIL.ClientId (si je me souviens bien) => résultat, il vaut mieux générer l'attribut ci-dessus dans ton code.
ABO_MAIL.onClientClick = "javascript:document.getElementById('" + ABO_MAIL.ClientId.ToString() + "').value='';"

Voili voilou,

A tester ^^

Billou_13
Bask En Force

--------------------------------------------------------------------
Connaître la réponse est une chose, savoir pourquoi en est une autre
---------------------
Messages postés
48
Date d'inscription
mardi 7 octobre 2003
Statut
Membre
Dernière intervention
9 décembre 2008
2
Simple, rapide et efficace!

Merci, je ne savais pas que "onClientClick" existait!

Je teste de suite et je confirme!

 
Messages postés
860
Date d'inscription
jeudi 4 mars 2004
Statut
Membre
Dernière intervention
19 août 2014
29
Bien vu !
Le onClientClick doit n'existait alors que pour asp:button ^^ (je me suis trompé).

Bonne soirée

Billou_13
Bask En Force

--------------------------------------------------------------------
Connaître la réponse est une chose, savoir pourquoi en est une autre
---------------------