[Javascript] Comment faire apparaître une partie d'un formulaire...

Comment faire apparaître une partie d'un formulaire... [Javascript] - Programmation

Marsh Posté le 22-12-2001 à 15:36:51    

Salut,
 
comment je peux choisir de faire apparaître une partie d'un formulaire si le visiteur choisit oui, et inversement de le faire disparaître si il clique sur non? :??:  
 
Merci

Reply

Marsh Posté le 22-12-2001 à 15:36:51   

Reply

Marsh Posté le 22-12-2001 à 17:45:20    

personne n'a déjà fait ça??
 
avec les attributs visibility...?

 

[edtdd]--Message édité par haazheel--[/edtdd]

Reply

Marsh Posté le 23-12-2001 à 15:13:16    

Comme je connais pas le javascript, j'ai commencé par tout simple:
 
onClick="this.form.textfield.focus()"
 
met le curseur dans le champ textfield quand je clique sur une case à cocher.
 
J'ai vu un terme javascript nommé visibility qui permet de cacher ou de faire apparaître tout ce qui se trouve entre deux <div> par exemple. Mais j'ai tenté ça:
 
onClick="document.all.test.style.visibility:hidden"
onClick="javascript: document.all.test.style.visibility:hidden"
onClick="document.all.test.style.visibility:hidde
n;"
onClick="javascript: document.all.test.style.visibility:hidden;"
 
Mais rien à faire ça marche pas. J'ai même un message d'erreur me disant ";" attendu.
 
HELP!!!

 

[edtdd]--Message édité par haazheel--[/edtdd]

Reply

Marsh Posté le 23-12-2001 à 15:22:56    

une petite recherche sur "visibility te donnera des merveilles ;)

Reply

Marsh Posté le 23-12-2001 à 15:22:58    

une petite recherche sur "visibility te donnera des merveilles ;)

Reply

Marsh Posté le 23-12-2001 à 15:25:43    

C'est bon, j'ai trouvé avant.
 
La syntaxe correcte est:
 
onSelect="javascript: document.all.test.style.v
isibility='hidden';"

 
Tiens, au fait, c'est quoi le contraire de onSelect en javascript?

 

[edtdd]--Message édité par haazheel--[/edtdd]

Reply

Marsh Posté le 23-12-2001 à 15:41:38    

onblur != onfocus
onselect : onchange

 

[edtdd]--Message édité par k666--[/edtdd]

Reply

Marsh Posté le 23-12-2001 à 15:55:50    

ok merci

Reply

Marsh Posté le 23-12-2001 à 16:38:13    

Bon, ok ça marche, mais:
 
quand le visiteur clique sur le radio 'non', tout ce qui se trouve dans la balise <div...> disparaît. Cette balise contient un tableau. Et cette balise est dans une cellule de tableau.
 
Mais quand la balise "se cache", la ligne du tableau dans laquelle se trouve la balise garde la même taille, occasionnant un gros trou dans le formulaire.
 
Comment, quand le div disparaît, rétrécir la ligne du tableau?
 
PS: J'ai essayé de faire ça, mais ça marche pas:
 
<table>
<tr><td></td></tr>
<div class="cacher"><tr><td></td></tr></div>
<tr><td></td></tr>
</table>
 
Mais ça marche pas...
 
Des idées?

Reply

Marsh Posté le 23-12-2001 à 20:38:35    

up!!

Reply

Marsh Posté le 23-12-2001 à 20:38:35   

Reply

Marsh Posté le 23-12-2001 à 23:08:36    

"display : none " au lieu de hidden. block pour faire réapparaître.

Reply

Marsh Posté le 24-12-2001 à 00:10:46    

Super, c'est exactement ça... :jap:  :jap:  
 
Allez, une dernière question pour la route: j'ai fait deux scripts, un pour l'affichage, l'autre pour l'effacement, de cette balise <div>, que voici:
 
<script language="JavaScript">
function hidden()
{
   ns4 = (document.layers)? true:false;  //si le navigateur est Netscape Navigator 4
   ie4 = (document.all)? true:false;      // si le navigateur est Internet Explorer 4
   dom = (document.getElementById)? true:false; //si le navigateur est Navigator 6 ou Explorer 5  
 
   if (dom) {
document.getElementById('cacher';).style.display = "none";
 }
   else if (ie4){
document.all('cacher';).style.display = "none";   }
   else if (ns4){
document.cacher.display = "none";
}
}
</script>
<script language="JavaScript">
function visible()
{
   ns4 = (document.layers)? true:false;  //si le navigateur est Netscape Navigator 4
   ie4 = (document.all)? true:false;      // si le navigateur est Internet Explorer 4
   dom = (document.getElementById)? true:false; //si le navigateur est Navigator 6 ou Explorer 5  
 
   if (dom) {
document.getElementById('cacher';).style.display = "block"; }
   else if (ie4){
document.all('cacher';).style.display = "block";   }
   else if (ns4){
document.cacher.display = "block";
}
}

 
Je les appelle par:
<input type="radio" name="pratique" value="oui" onFocus="javascript:visible();" checked>
        <b>Oui</b><br>
        <input type="radio" name="pratique" value="non" onFocus="javascript:hidden();">
        <b>Non </b>

 
Comment les combiner pour ne faire qu'une seule fonction, et les appeller par:
 
onFocus="javascript:cacher(oui);" pour cacher
ou  
onFocus="javascript:cacher(non);" pour faire apparaître
 
??
 
Merci

Reply

Marsh Posté le 24-12-2001 à 00:44:31    

function myVisibility(str)  
{  
  ns4 = (document.layers)? true:false;
  ie4 = (document.all)? true:false;
  dom = (document.getElementById) ? true:false;  
 
  if (dom) document.getElementById('cacher';).style.display = str;  
  else if (ie4)
document.all('cacher';).style.display = str;  
  else if (ns4)
document.cacher.display = str;  
}  
 
que tu appelles par myVisibility('none';) ou myVisibility('block';); ...
 
si tu tiens absolument à faire 'oui'/'non' tu remplaces par :
 
function myVisibility(str)  
{  
   str = (str == 'oui';) ? 'block' : 'none';
   // et le reste de la fonction pareil ...
   // ...

Reply

Marsh Posté le 24-12-2001 à 01:09:01    

:jap: Très bien, je te remercie beaucoup... :jap:

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed