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

rom268 Messages postés 23 Date d'inscription lundi 8 octobre 2007 Statut Membre Dernière intervention 1 avril 2009 - 9 oct. 2007 à 14:03
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

9 réponses

XtremDuke Messages postés 626 Date d'inscription samedi 28 septembre 2002 Statut Membre Dernière intervention 18 mai 2009 4
9 oct. 2007 à 15:16
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>
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
9 oct. 2007 à 15:00
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        
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
9 oct. 2007 à 14:09
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        
rom268 Messages postés 23 Date d'inscription lundi 8 octobre 2007 Statut Membre Dernière intervention 1 avril 2009
9 oct. 2007 à 14:51
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
9 oct. 2007 à 14:58
>>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        
rom268 Messages postés 23 Date d'inscription lundi 8 octobre 2007 Statut Membre Dernière intervention 1 avril 2009
9 oct. 2007 à 16:09
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
PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 17
9 oct. 2007 à 18:27
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)
rom268 Messages postés 23 Date d'inscription lundi 8 octobre 2007 Statut Membre Dernière intervention 1 avril 2009
12 oct. 2007 à 13:37
qu'est ce que fait la ligne :
var Data = this_.options[this_.selectedIndex].value; ???
c'est quoi ce "this_" ???
PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 17
13 oct. 2007 à 08:56
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)
Rejoignez-nous