Grisé un champ en fonction d'une liste déroulante

Messages postés
23
Date d'inscription
lundi 8 octobre 2007
Statut
Membre
Dernière intervention
1 avril 2009
- - Dernière réponse : PetoleTeam
Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
- 13 oct. 2007 à 08:56
Voila , tout est dans le titre !
J'ai une liste déroulante en relation avec ma base de donnée. Cette liste concerne les "types contrats" j'ai donc CDI, CDD, et stages pour le moment.
J'ai un textbox à coté ou l'on peut rentrer la durée du stage ou du CDD. Seulement j'aimerais que ce textbox soit grisé lorsque je selectionne "CDI" dans ma liste.
Si quelqu'un à une idée...

Merci
Afficher la suite 

9 réponses

Meilleure réponse
Messages postés
631
Date d'inscription
samedi 28 septembre 2002
Statut
Membre
Dernière intervention
18 mai 2009
3
3
Merci
Ca doit ressembler à quelque chose comme ça...

<html>
<head>
<title>contrats</title>
<script type="text/javascript">
    function checkSelection(val){
        if(val=='cdi'){
            document.getElementById('dureeContrat').disabled = true;
        }else{
            document.getElementById('dureeContrat').disabled = false;
        }
    }
</script>
</head>

<select id="selectContrats" onchange="checkSelection(this.value)">
    <option value="cdi" selected="selected">CDI</option>
    <option value="cdd">CDD</option>
    <option value="stage">STAGE</option>
</select>

</html>

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 208 internautes nous ont dit merci ce mois-ci

Commenter la réponse de XtremDuke
Messages postés
13619
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
27
0
Merci
Bonjour,

>> j'aimerais que ce textbox soit grisé
    readonly ou disabled à true
    pour dégriser  ( faudrait moi aussi que j'arrête de boire ! ), mettre à false

>>lorsque je selectionne "CDI" dans ma liste.
    liste ? un select probablement
    onchange="javascript quand on choisit une option"
       et    this.options[this.selectedIndex]   donne le n° de ligne
              this.options[this.selectedIndex].value ou .text le contenu



<hr />                Cordialement            Bul        
Commenter la réponse de cs_bultez
Messages postés
23
Date d'inscription
lundi 8 octobre 2007
Statut
Membre
Dernière intervention
1 avril 2009
0
Merci
Cool compris pour le "dégrisement"
Mais pour le reste bof...
Faut que créer une fct ou je le met direct à la suite dérriére OnChange, et dans ce cas ou lui dis-je comment dégriser mon textbox ?

Bien cordialement
Commenter la réponse de rom268
Messages postés
13619
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
27
0
Merci
>>Faut que créer une fct ou je le met direct
à la suite dérriére OnChange,
    c'est comme tu le sens.
    mais attention à this qui sera la fonction dans la function, pas le select
>>et dans ce cas ou lui dis-je comment
dégriser mon textbox ?
    tu fais le contaire de ce que tu fais pour le griser.


<hr />                Cordialement            Bul        
Commenter la réponse de cs_bultez
Messages postés
13619
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
27
0
Merci
fin du message perdu...


>>et dans ce cas ou lui dis-je comment dégriser mon textbox ?
    tu fais le contaire de ce que tu fais pour le griser,
    peut-être quand on sélectionne autre chose que CDI ?
    mais en fait, toi seul peut répondre...


<hr />                Cordialement            Bul        
Commenter la réponse de cs_bultez
Messages postés
23
Date d'inscription
lundi 8 octobre 2007
Statut
Membre
Dernière intervention
1 avril 2009
0
Merci
J'ai saisi ce qu'il faut faire je pense, sauf la partie de fonction dans la fonction avec le "this".J'ai repris le code de XtremDuke, mais je n'ai pas stipulé que je travail en Vb ( ca ne change cependant peut etre rien...) et du coup quand je met un input mon champ est bien grisé, mais par contre je selectionne CDD et que je reselectionne CDI le grisement ne se fait plus.
Mais de toute facon je bosse avec un Objet Textbox et le code ne marche plus la console me dit que mon "dureeContrat" text box n'as pas d'options....
si je récupére la valeur avec this.value dans ma liste, que puis-je utilisé pour grisé mon text en fct de ma selection
je met mon bout de code si ca peux aider...

<script language="javascript">

function checkSelection(val){
        if(val=='CDI'){
            document.getElementById('Duree').disabled = true;
        }else{
            document.getElementById('Duree').disabled = false;
        }
    }

</script>

[...]

 <td valign="top" style="width: 190px" >Type de contrat </td>
          <td width="165" valign="top" >
           
           
            " SelectCommand="SELECT * FROM [contrat]">
           
          </td>
          <td colspan="2" valign="top" >Dur&eacute;e pour les CDD et les stages </td>
          <td valign="top" style="vertical-align:top; width: 33px;" >
             
          </td>
          <td width="164" valign="top" >mois</td>
        </tr>

Voila désolé si je suis un peu à la rue..
Merci pour votre aide
Commenter la réponse de rom268
Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
11
0
Merci
B



onjour...


Juste pour faire une petite correction sur le code de XtremDuke

<html>
<head>
<title>contrats</title>
<script type= "text/javascript">
function checkSelection( this_){
  var Data = this_.options[this_.selectedIndex].value;
  if( Data == 'cdi'){
    document.getElementById('dureeContrat').disabled = true;
  }
  else{
   document.getElementById('dureeContrat').disabled = false;
  }
}
</script>
</head>

<select id="selectContrats" onchange="checkSelection( this )">
  <option value ="cdi" selected="selected">CDI</option>
  <option value="cdd">CDD</option>
  <option value="stage">STAGE</option>
</select>

</html>

that's All ! du moins il me semble...




;0)
Commenter la réponse de PetoleTeam
Messages postés
23
Date d'inscription
lundi 8 octobre 2007
Statut
Membre
Dernière intervention
1 avril 2009
0
Merci
qu'est ce que fait la ligne :
var Data = this_.options[this_.selectedIndex].value; ???
c'est quoi ce "this_" ???
Commenter la réponse de rom268
Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
11
0
Merci
Bonjour,

<select id= "selectContrats" onchange="checkSelection( this )">
dans cette ligne le this représente l'object SELECT lui même

function checkSelection( this_){
dans cette ligne le this_ réprésente le paramètre passé à la fonction, soit l'object SELECT

var Data = this_.options[this_.selectedIndex].value;
dans cette ligne
this_.selectedIndex représente l'OPTION sélectionnée du SELECT, selectedIndex commence à zéro.
this_.options est la collection des OPTIONS contenues dans le SELECT, on y accéde comme dans un tableau normal

en final tu récupéres dans Data l'attribut value de l'OPTION sélectionnée du SELECT this_ qui a déclenché l'action soit le SELECT avec l'id "selectContrats" dans ton cas.

J'espère que cela est plus clair ?  pas sur à la relecture d'ailleurs.


;0)
Commenter la réponse de PetoleTeam