ASP TextBox se vidant sur un click

Résolu
v.massip Messages postés 48 Date d'inscription mardi 7 octobre 2003 Statut Membre Dernière intervention 9 décembre 2008 - 19 sept. 2006 à 08:57
billou_13 Messages postés 860 Date d'inscription jeudi 4 mars 2004 Statut Membre Dernière intervention 19 août 2014 - 19 sept. 2006 à 15:54
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

v.massip Messages postés 48 Date d'inscription mardi 7 octobre 2003 Statut Membre Dernière intervention 9 décembre 2008 2
19 sept. 2006 à 14:42
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!
3
v.massip Messages postés 48 Date d'inscription mardi 7 octobre 2003 Statut Membre Dernière intervention 9 décembre 2008 2
19 sept. 2006 à 14:52
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
}






 


 
3
billou_13 Messages postés 860 Date d'inscription jeudi 4 mars 2004 Statut Membre Dernière intervention 19 août 2014 29
19 sept. 2006 à 10:42
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
---------------------
0
v.massip Messages postés 48 Date d'inscription mardi 7 octobre 2003 Statut Membre Dernière intervention 9 décembre 2008 2
19 sept. 2006 à 13:38
Simple, rapide et efficace!

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

Je teste de suite et je confirme!

 
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
billou_13 Messages postés 860 Date d'inscription jeudi 4 mars 2004 Statut Membre Dernière intervention 19 août 2014 29
19 sept. 2006 à 15:54
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
---------------------
0
Rejoignez-nous