Vider le champs quand il est caché

sigma2008

WRInaute impliqué
Bonjour,

J'utilise le code ci-dessus pour cacher et afficher un code, je veux vider le champ quand il passe a display none.

Code:
<script type="text/javascript">
				function telselect(){
				  document.getElementById("phonetele2").style.display='none';
				  
				  document.getElementById("phonetele"+document.getElementById("telephone").value).style.display='block';
				  
				}
				</script>

Merci pour votre aide
 

sigma2008

WRInaute impliqué
j'ai essayé ça baud74 dans l'affichage il m'affiche le formulaire vide mais dans le code source value contient toujorus un élement !
 

Schwarzer Stern

WRInaute impliqué
Salut,
quand tu dis "le code source" tu veux dire l'inspecteur DOM ou le code source tel que généré à la base (qui n'est pas mis à jour) ? On ne sait jamais ^^
 

sigma2008

WRInaute impliqué
Oups oublie ce que j'ai dis sur mon dernier commentaire ^^ oui je comprend le truc de .value='' ça marche sauf que comment faire le test if .style.display=='none' ? pour ajouter la ligne ....value="" ?

Merci
 

zeb

WRInaute accro
sigma2008 a dit:
comment faire le test if .style.display=='none' ? pour ajouter la ligne ....value="" ?
Bah tu reset le champ dans la partie de code qui justement cache l'élément donc au moment ou tu le passe en display none.
 

sigma2008

WRInaute impliqué
Donc c'est comme ça :

Code:
<script type="text/javascript">
            function telselect(){
              document.getElementById("phonetele2").style.display='none';
             document.getElementById('phonetele2').value = '';
              document.getElementById("phonetele"+document.getElementById("telephone").value).style.display='block';
             
            }
            </script>

?
 

zeb

WRInaute accro
ouep normalement ... Fait attention toutefois a ne pas reseter ta value avant de l'avoir utilisée si tu en as besoin :wink:
 

sigma2008

WRInaute impliqué
Le prolbème c'est que j'utilise le code :

Code:
<script type="text/javascript">
					telselect();
					</script>

Pour appliquer le script au chargement, mais je ne veux pas appliquer le value="" au premier coup :(
 

zeb

WRInaute accro
Faudrait connaitre ton "Use Case" pour te répondre et voir le code complet (IHM plus logique applicative) car là c'est pas évident de comprendre le déroulé des opérations.
 

sigma2008

WRInaute impliqué
C'est bon j'ai bricolé comme ça :

Code:
<script type="text/javascript">
            function telselect(){
              document.getElementById("phonetele2").style.display='none';
if(premi=2){
				  var premi=2;
				  }else{
				  var premi=1;
				  }
				  if(premi>1){
				  var permi=2;
             document.getElementById('phonetele2').value = '';
}
              document.getElementById("phonetele"+document.getElementById("telephone").value).style.display='block';
             
            }
            </script>

ceci n'applique pas value='' pour la première fois
 

sigma2008

WRInaute impliqué
Bonjour,
Mon code n'est pas le bon, j'ai bien réflichi et j'ai trouvé la solution mais je repose la question autrement :) c'est la même mais j'explique encore mieux, donc mon code est :

Code:
<script type="text/javascript">
            function telselect(){
              document.getElementById("phonetele2").style.display='none';
             document.getElementById('phonetele2').value = '';
              document.getElementById("phonetele"+document.getElementById("telephone").value).style.display='block';
             
            }
            </script>

ça marche très bien mais je dois ajouter un autre code sous ......display='block'; indiquant que la valeure de phonetel2 reste la même si c'est block (c'est à dire la value="" juste dans display='none' et si c'est display block la valeur reprend sa valeur normale.

Merci de votre aide :)
 

zeb

WRInaute accro
Bon si je comprend bien ta fonction doit avoir 2 comportement :
* au premier appel (onload du body) elle ne dois pas reseter ta value
* pour tout autre appel on reset la value au moment du masquage.

Une solution serait de passer un paramètre true/false à ta fonction qui serait initialisée dans l'appel du body et pas dans les autres cas.
Code:
<script type="text/javascript">
function telselect(x){
...
if(x){document.getElementById('phonetele2').value = '';}
...
}
</script>
<body onload="telselect(false);">
...
</body>

tous les autres appel a ta fonction qui doivent reseter la value doivent être alors sous al forme : telselect(true);
 

sigma2008

WRInaute impliqué
Merci de ton retour ZEB, non oublie mes premiers messages, la fonction s'applique aussi au premier passage (onload in body). le dernier code que j'ai inséré est super, il faut juste au dessous de block ajouter un code avec les même conditions d'activation du display block et qui fait passer la valeur de phonetele2 en sa valeur initiale (avant qu'on la vide)
 

sigma2008

WRInaute impliqué
Code:
<script type="text/javascript">
            function telselect(){
              document.getElementById("phonetele2").style.display='none';
             var xxx = document.getElementById('phonetele2').value;
             document.getElementById('phonetele2').value = '';
              document.getElementById("phonetele"+document.getElementById("telephone").value).style.display='block';
             document.getElementById("phonetele"+document.getElementById("telephone").value).value=xxx;
            }
            </script>

:)
 

Discussions similaires

Haut