Page 1 sur 1
Cacher un formulaire
Posté : 31 mai 2006, 10:05
par azerty53
Bonjour,
voici mon cas.
j'ai une case a cocher et un input de type file.
je souhaiterai savoir si il est possible de cacher le champ input de type file tant que la case n'a pas été cochée.
Merci
Bonne journée
Posté : 31 mai 2006, 10:10
par guilt92
Il y a comme moyen de jouer sur l'attribut readonly de ton file, que tu peux mettre à "true" tant que la case n'est pas cochée ce qui empechera l'utilisateur de selectionner un fichier, puis à false lorsque la case est cochée.
Néanmoins pour faire cela dynamiquement il faut utiliser le Javascript, car en php cela nécessiterai un rechargement (refresh) de la page provoqué par l'utilisateur (en php) ou dynamiquement lorsque le statut de la case a cocher change (en javascript).
De la même manière au lieu de jouer sur l'attribut readonly tu peux mettre ton input dans une <div> cachée (visible:none) tant que la case n'est pas cochée et qui apparait lorsqu elle est cochée, mais encore une fois c'est du javascript.
Posté : 31 mai 2006, 10:15
par charabia
Exemple d'activation ou de masquage à partir d'un bouton radio (javascript), vu sur éditeurjavascript.
Code : Tout sélectionner
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Désactivation / Masquage</title>
<script language="Javascript">
// ==================
// Activations - Désactivations
// ==================
function GereControle(Controleur, Controle, Masquer) {
var objControleur = document.getElementById(Controleur);
var objControle = document.getElementById(Controle);
if (Masquer=='1')
objControle.style.visibility=(objControleur.checked==true)?'visible':'hidden';
else
objControle.disabled=(objControleur.checked==true)?false:true;
return true;
}
</script>
</head>
<body>
Exemples de désactivations :<br /><br />
<form>
<input type="checkbox" id="chkb_1" onClick="GereControle('chkb_1', 'texte_1', '0');" CHECKED> <label for="chkb_1">Contrôle de "texte_1"</label> <input type="text" id="texte_1" value="Contenu de texte_1">
<br /><br />
<input type="radio" id="radio_1" name="radios" onClick="GereControle('radio_1', 'liste_1', '0');" CHECKED> <label for="radio_1">Active de "liste_1"</label>
<br />
<input type="radio" id="radio_2" name="radios" onClick="GereControle('radio_1', 'liste_1', '0');"> <label for="radio_2">Désactive de "liste_1"</label>
<select id="liste_1">
<option value="1">Ligne 1</option>
<option value="2">Ligne 2</option>
<option value="3">Ligne 3</option>
</select>
<p> </p>
Exemples de masquage :<br /><br />
<input type="checkbox" id="chkb_10" onClick="GereControle('chkb_10', 'texte_10', '1');" CHECKED> <label for="chkb_10">Contrôle de "texte_10"</label><input type="text" id="texte_10" value="Contenu de texte_10">
<br /><br />
<input type="radio" id="radio_10" name="radios_0" onClick="GereControle('radio_10', 'liste_10', '1');" CHECKED> <label for="radio_10">Active de "liste_10"</label>
<br />
<input type="radio" id="radio_20" name="radios_0" onClick="GereControle('radio_10', 'liste_10', '1');"> <label for="radio_20">Désactive de "liste_10"</label>
<select id="liste_10">
<option value="1">Ligne 1</option>
<option value="2">Ligne 2</option>
<option value="3">Ligne 3</option>
</select>
</form>
</body>
</html>
Posté : 31 mai 2006, 10:17
par azerty53
d'accord merci,
c'est bien ce qui me semblait
bonne journée^^
Posté : 31 mai 2006, 10:38
par Ryle
Tu peux aussi jouer sur le style "display" (none/bloc/inline) au lieu de "visibility" (hidden/visible).
La différence étant que visibility masque simplement l'objet mais conserve l'espace qu'il occupe dans la page html, tandis que display le supprime de l'affichage (donc pas de trou

)
Sinon juste un truc que je trouve original dans le code trouvé par Charabia :
Code : Tout sélectionner
objControle.disabled=(objControleur.checked==true)?false:true;
Soit : Si "vrai" est "vrai" alors "faux" sinon "vrai"
C'est quand même plus simple comme ça

Posté : 31 mai 2006, 10:42
par charabia
Sinon juste un truc que je trouve original dans le code trouvé par Charabia :
Code : Tout sélectionner
objControle.disabled=(objControleur.checked==true)?false:true;
Soit : Si "vrai" est "vrai" alors "faux" sinon "vrai"
C'est quand même plus simple comme ça

Je suis innocent m'sieur !
