[Résolu] SELECT, option choisie: activer un champs texte

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [Résolu] SELECT, option choisie: activer un champs texte

par Cyrano » 30 sept. 2005, 14:10

Excellent, il manque plus que le [Résolu] ;)

par Invité » 30 sept. 2005, 14:07

En cherchant un petit peu,

J'ai trouvé la solution:
function actdesact() 
   { 
       if (document.getElementById('category').options[document.getElementById('category').selectedIndex].value != "new"){
			        document.getElementById('category_new').style.display = "none";
			        document.getElementById('category_new').style.visibility = "hidden";
			        document.forms["modifmultischedule"].elements["category_new"].value = "";
			 }
       else {
			        document.getElementById('category_new').style.display = "";
			        document.getElementById('category_new').style.visibility = "visible";
			 }
   }
et pour mon input text:
<input type="text" name="category_new" id="category_new" style="display: none" maxlength="50" />
En esperant que ca puisse aider quelqu un

A bientot

Ca marche !

par jckfun2 » 30 sept. 2005, 11:49

Truc,

Merci d'avoir consacré du temps à la résolution de mon probleme.

EN fait, j'avais oublié de mettre "disbled" en propriété de l'INPUT.

Un peu stupide que je suis ...

Sinon, la remarque de gesualda me semble etre tres interessante. Cela pourrait etre une amelioration de ce que je veux faire.

Est ce possible de masquer l INPUT et non le désactiver ?

A bientot.

par gesualda » 29 sept. 2005, 22:07

Bonjour truc,

j'ai suivi le post, qui m'a l'air interressant. Je suis un peu dans le meme cas de figure que "jckfun", et ton bout de code rend m'a rendu bien service, ne connaissant rien au javascript.

Mais j'ai deux questions, bien sur si tu as le temps.

- Peut on utiliser le meme code javascript pour faire apparaitre la balise input avec un display=none, en place de l'activité? j'ai essayé je trouve pas. :oops:

- Est on obliger de passer par du javascript pour ce genre de chose, ou bien peut on le faire entièrement en php ?

Merci :roll:

par Invité » 29 sept. 2005, 19:39

Merci pour ce code, enfin, je ne vois pas de difference notable avec le mien ...

Je teste ca demain, et je te dis quoi.

Merci beaucoup en tout cas !!!

Bonne soirée.

par Truc » 29 sept. 2005, 18:00

voila le code, tel que je l'ai:

je suis sur que tu n'a qu'un simple oubli :wink:
<html>
<head>
<title>Document sans nom</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script type="text/javascript">

function actdesact()
   {
       if (document.getElementById('category').options[document.getElementById('category').selectedIndex].value != "new")
           document.modifmultischedule.category_new.disabled=true;
       else
           document.modifmultischedule.category_new.disabled=false;
   }  

</script>
</head>
<body>
<form method="get" action="ma_page.html" name="modifmultischedule">   

   <input type="text" name="category_new" disabled>
   <select name="category" id="category" onChange='actdesact(this)'>
		<option value="1"> 1 </option>
		<option value="2"> 2 </option>
		<option value="3"> 3 </option>
       <option value="new"> >-- Nouvelle --< </option>
    </select>
</form>
</body>
</html> 
En principe c'est pas bien de balancer un code comme ca mais si tu veut des explications, demandes :wink:

par jckfun » 29 sept. 2005, 17:49

Merci Truc pour ta réponse.

J'ai fait les modifs, et ca ne marche toujours pas ...

Je ne comprends pas !

Pourrais tu me mettre ton code sur une page pour que je vois en effet que ca marche, car la, c est un peu enervant :oops:

A bientot et merci d'avance

par Truc » 29 sept. 2005, 17:23

tu ne fait pas de qu'il faut pour y arriver :wink:

javascript:
function actdesact()
   {
       if (document.getElementById('category').options[document.getElementById('category').selectedIndex].value != "new")
           document.modifmultischedule.category_new.disabled=true;
       else
           document.modifmultischedule.category_new.disabled=false;
   }
Remarque: on note != et non =!

pour l'appel a la fonction javacript essai plustot comme ceci:
onChange='actdesact(this)'
j'ai testé chez moi et ça marche tres bien, courage :wink:

par jckfun » 29 sept. 2005, 17:02

Merci pour la remarque.

Cela ne change rien.

A bientot

par Truc » 29 sept. 2005, 16:57

Salut, deja pour pouvoir utiliser getElementById('category') correctement il faut inclure un id="category" dans la balise select.
Peut etre que ça arrabgera deja la chose :wink:

[Résolu] SELECT, option choisie: activer un champs texte

par jckfun » 29 sept. 2005, 16:42

Bonjour tout le monde !

Voila, j'ai qq soucis en JS. Je voudrais implémenter un script pour lequel, lorsque l'utilisateur choisi une certaine option d'une liste, un champs texte apparait a coté.

Par exemple, lorsque l'utilisateur doit choisir une catégorie, si il clique sur "Nouvelle Categorie", un champs texte apparait a coté pour qu il entre cette catégorie.

Voila mon code qui ne marche pas.

Code : Tout sélectionner

function actdesact() { if (document.getElementById('category').options[document.getElementById('category').selectedIndex].value =! "new") document.modifmultischedule.category_new.disabled=true; else document.modifmultischedule.category_new.disabled=false; }
et pour la LIST :

Code : Tout sélectionner

<select name="category" onChange='javascript:actdesact()'> <? $tableau_propre = array_wo_duplicate_values ("category"); foreach ($tableau_propre as $categories_ok){ ?> <option value="<? print "$categories_ok"; ?> "> <? print "$categories_ok"; ?> </option> <? } ?> <option value="new"> >-- Nouvelle --< </option> </select>
Cela ne marche pas ... Une idée ?

Merci d'avance.

A bientot