Récuperer valeurs select dans une zone de texte

Signaler
Messages postés
7
Date d'inscription
lundi 2 juin 2008
Statut
Membre
Dernière intervention
3 juin 2008
-
Messages postés
7
Date d'inscription
lundi 2 juin 2008
Statut
Membre
Dernière intervention
3 juin 2008
-
Bonjour,
J'ai besoin de votre aide. Je souhaite gérer des dates de naissances et récupérer les valeurs de mes listes déroulantes pour les inscrire dans une zone de texte dans le format "JJ/MM/AAAA" a coté. J'ai créer deux select pour le jour et le mois puis une input text pour l'année.
Comment récupérer ces valeurs dans une et meme zone de texte? afin d'éviter le message d'alerte
Merci de votre aide à l'avance mais j'ai essayé plein de méthode, sans succés.

....................................................................................................


<!--- --->
<select name="jour">
<option value="00">JJ</option>
<option value="01">01</option>
<option value="02">02</option>
<option value="03">03</option>
<option value="04">04</option>
<option value="05">05</option>
<option value="06">06</option>
<option value="07">07</option>
<option value="08">08</option>
<option value="09">09</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
<option value="13">13</option>
<option value="14">14</option>
<option value="15">15</option>
<option value="16">16</option>
<option value="17">17</option>
<option value="18">18</option>
<option value="19">19</option>
<option value="20">20</option>
<option value="21">21</option>
<option value="22">22</option>
<option value="23">23</option>
<option value="24">24</option>
<option value="25">25</option>
<option value="26">26</option>
<option value="27">27</option>
<option value="28">28</option>
<option value="29">29</option>
<option value="30">30</option>
<option value="31">31</option>
</select>
&nbsp;
<!--- --->
<select name="mois">
<option value="00">MM</option>
<option value="01">01</option>
<option value="02">02</option>
<option value="03">03</option>
<option value="04">04</option>
<option value="05">05</option>
<option value="06">06</option>
<option value="07">07</option>
<option value="08">08</option>
<option value="09">09</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
</select>

=this.form.mois.value)
{
if((actu.getMonth()+1)==this.form.mois.value)
{
if(actu.getDate()>=this.form.jour.value)
{
mois=(actu.getMonth()+1)-this.form.mois.value;
ans=actu.getFullYear()-this.form.annee.value;
}
else
{
mois=(12-this.form.mois.value)+(actu.getMonth()+1);
ans=actu.getFullYear()-this.form.annee.value-1;
}
}
else
{
mois=(actu.getMonth()+1)-this.form.mois.value;
ans=actu.getFullYear()-this.form.annee.value;
}
}
else
{
mois=(12-this.form.mois.value)+(actu.getMonth()+1);
ans=actu.getFullYear()-this.form.annee.value-1;
}
if(actu.getDate()>this.form.jour.value)
{
jours=actu.getDate()-this.form.jour.value;
}
else
{
jours=(30-this.form.jour.value)+(actu.getDate());
}
while(jours>30)
{
jours-=30;
mois+=1;
}
while(mois>12)
{
mois-=12;
ans+=1;
}
if (ans>18)
{
window.alert('Vous êtes majeur, vous pouvez souscrire à ce contrat car vous avez '+ans+' ans. Vous etes né le '+this.form.jour.value+'/'+this.form.mois.value+'/'+this.form.annee.value+'');
}
else if (ans<18)
{
      window.alert('Vous devez être majeur, vous avez que '+ans+' ans. Vous etes né le '+this.form.jour.value+'/'+this.form.mois.value+'/'+this.form.annee.value+'');
}
">

</form>

--Vibration--

14 réponses

Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
36
Bonjour,

>>Comment récupérer ces valeurs dans une et meme zone de texte? afin d'éviter le message d'alerte
   
    pas compris..
    les messages d'alert ? ceux provoqués par alert ? des erreurs....

   mais, avant tout....

    supprime le onclick du submit
    remplace par onsubmit="return trait(this);" dans la balise form
    met le javascript dans une fonction trait(frm)
       et remplace les this.form par frm
    fais un return false si tu ne veux pas envoyerl le formulaire,
       un return true sinon

<script>
function trait(frm)
{
actu=new Date();
if((actu.getMonth()+1)>=frm.mois.value)
{
....
if (ans>18)
{
window.alert('Vous êtes majeur, vous pouvez souscrire à ce contrat car vous avez '+ans+' ans.' +
 'Vous etes né le '+frm.jour.value+'/'+frm.mois.value+'/'+frm.annee.value);
 return true;
}
else
{
      window.alert('Vous devez être majeur, vous avez que '+ans+' ans. Vous etes né le '+frm.jour.value+'/'+frm.mois.value+'/'+frm.annee.value);
        return false;
}

}
</script>
<form method="post" action="age2.html"
    onsubmit="return(trait(this));">

...

</form>

et s'il y a des erreurs :

FireFox
, regarder la "console d'erreurs"
Outils / Console d'erreurs
et mieux : télécharger mon Site]  [M'écrire]  [Laisser une adresse Mail, en évitant les spams]
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
36
et pour récupérer dans un champ texte l'option d'un select....
    le_champ_text_en_question.value =
        le_select_dont_tu_causes[le_select_dont_tu_causes.selectedIndex].value ou .text
    mais... je ne vois pas à quoi ça va te servir....
<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
Messages postés
7
Date d'inscription
lundi 2 juin 2008
Statut
Membre
Dernière intervention
3 juin 2008

Merci bultez d'avoir répondu trés rapidement c'est trés gentil de ta part.
J'ai essayé d'appliquer ce que tu m'a dit mais je ne reçois plus de message d'alerte lorsque je clique sur le bouton. Voici le code en entier que j'ai essayé de modifier a l'aide de tes conseils.
J'ai du faire des erreurs...(je suis en stage informatique et je dois faire du javascript et je n'en ai jamais effectué auparavant)
De plus, en cliquant j'aimerais au lieu d'avoir une alerte, avoir une zone de texte apparaitre récapitulant la date complete ce que je n'ai pas réussi a effectuer. (ex: 10/05/1985)
Si tu peux m'aider une nouvelle fois...
Merci d'avance

<html>

<head>

<title>DATE</title>

<SCRIPT language=javascript>

function trait(frm)
{
actu=new Date();
if((actu.getMonth()+1)>=frm.mois.value)
{
if((actu.getMonth()+1)==this.form.mois.value)
{
if(actu.getDate()>=this.form.jour.value)
{
mois=(actu.getMonth()+1)-this.form.mois.value;
ans=actu.getFullYear()-this.form.annee.value;
}
else
{
mois=(12-this.form.mois.value)+(actu.getMonth()+1);
ans=actu.getFullYear()-this.form.annee.value-1;
}
}
else
{
mois=(actu.getMonth()+1)-this.form.mois.value;
ans=actu.getFullYear()-this.form.annee.value;
}
}
else
{
mois=(12-this.form.mois.value)+(actu.getMonth()+1);
ans=actu.getFullYear()-this.form.annee.value-1;
}
if(actu.getDate()>this.form.jour.value)
{
jours=actu.getDate()-this.form.jour.value;
}
else
{
jours=(30-this.form.jour.value)+(actu.getDate());
}
while(jours>30)
{
jours-=30;
mois+=1;
}
while(mois>12)
{
mois-=12;
ans+=1;
}
if (ans>18)
{
window.alert('Vous êtes majeur, vous pouvez souscrire à ce contrat car vous avez '+ans+' ans.' +
 'Vous etes né le '+frm.jour.value+'/'+frm.mois.value+'/'+frm.annee.value);
 return true;
}
else
{
      window.alert('Vous devez être majeur, vous avez que '+ans+' ans. Vous etes né le '+frm.jour.value+'/'+frm.mois.value+'/'+frm.annee.value);
        return false;
}

}

</SCRIPT>

</head>


<!--- --->
<select name="jour">
<option value="00">JJ</option>
<option value="01">01</option>
<option value="02">02</option>
<option value="03">03</option>
<option value="04">04</option>
<option value="05">05</option>
<option value="06">06</option>
<option value="07">07</option>
<option value="08">08</option>
<option value="09">09</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
<option value="13">13</option>
<option value="14">14</option>
<option value="15">15</option>
<option value="16">16</option>
<option value="17">17</option>
<option value="18">18</option>
<option value="19">19</option>
<option value="20">20</option>
<option value="21">21</option>
<option value="22">22</option>
<option value="23">23</option>
<option value="24">24</option>
<option value="25">25</option>
<option value="26">26</option>
<option value="27">27</option>
<option value="28">28</option>
<option value="29">29</option>
<option value="30">30</option>
<option value="31">31</option>
</select>
&nbsp;
<!--- --->
<select name="mois">
<option value="00">MM</option>
<option value="01">01</option>
<option value="02">02</option>
<option value="03">03</option>
<option value="04">04</option>
<option value="05">05</option>
<option value="06">06</option>
<option value="07">07</option>
<option value="08">08</option>
<option value="09">09</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
</select>

 

</form>

</html>

--Vibration--
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
36
tu n'as pas rectifié tous les this.form !
    if((actu.getMonth()+1)==this.form.mois.value).... et les autres
lors de la mise au point regarde le ch'tit tableau que j' ai mis
    et applique en fonction de tes navigateurs... ça aide !
<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
Messages postés
7
Date d'inscription
lundi 2 juin 2008
Statut
Membre
Dernière intervention
3 juin 2008

Encore merci bultez mon 1er probleme est résolu, pour la console d'erreurs RAS je vais donc essayer de créer ma zone de texte aprés validation...
En tt cas un grand merci! c'est pas avec ma tête que j'aurais réussi cela

--Vibration--
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
36
nickel
>>avoir une zone de texte apparaitre récapitulant la
date complete
       comme indiqué... ou presque
       zone_texte.value=select_jour[select_jour.selectedIndex].value+"/"+
                                  select_mois[select_mois.selectedIndex].value+"/"+..... ;
          en remplaçant les choses en italique par ce qui va bien et en complétant...
<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
36
et.... ce champ texte va servir à quoi ?
    puisque les valeurs on en dispose déjà, dans les select... non ?
<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
36
ch'tiote remarque encore....
    pour calculer la différence entre 2 dates, il suffit de faire une soustraction....
    ( c'est elles sont au format Date() ! quleques infos sur SelfHml ici )
<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
Messages postés
7
Date d'inscription
lundi 2 juin 2008
Statut
Membre
Dernière intervention
3 juin 2008

Merci bcp de ton aide
En fait je modifie un formulaire deja existant car la gestion de date de naissance n'était pas bien mise au point.
Et vu que la vérification lors de la validation se faisait dans ce format là, je souhaite garder le meme pour pas modifier tout les fichiers template et autres. Je préfére y accéder par petits pas vu mes compétences et vu ce que l'on me demande de réaliser.
Si cela ne te derange pas j'essayerais de te recontacter en cas d'erreurs de ma part pour la suite car je vais suivre tes conseils qui m'ont l'air le plus simple et bien expliquer.
C'est gentil d'aider des "aprentis" comme moi!!
J'ai également visité ton site, j'ai vu que tu touché pas mal au niveau developpement.^^

--Vibration--
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
36
>>j'essayerais de te recontacter en cas d'erreurs
    un nouveau message dans ce forum...  c'est ce qu'il y a de mieux,
    de plus efficace....
<hr />Cordialement   Bul     [mon Site]   [M'écrire]   [Laisser une adresse Mail, en évitant les spams]
Messages postés
7
Date d'inscription
lundi 2 juin 2008
Statut
Membre
Dernière intervention
3 juin 2008

Je suis vraiment nul mais je n'arrive pas a faire ce que tu m'a dis hier.
J'ai fait ceci:
(.....)

</form>
(...)

J'ai essayé aussi en mettant "options" (+frm.jour.value.options[frm.jour.value.selectedIndex].value+) mais rien ne se passe.
Je suis désolé de t'embêter encore...
--Vibration--
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
36
erreur d'inattentions !  

        value ?  
       frm et daterecap ? c'est quoi ici ?

document.name_du_formulaire.name_du_champ.value=
        document.name_du_formulaire.name_du_select.options
                [document.name_du_formulaire.name_du_select.selectedIndex].value....

<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
Messages postés
7
Date d'inscription
lundi 2 juin 2008
Statut
Membre
Dernière intervention
3 juin 2008

Grace a toi j'y arrive...presque...car le jour et le mois s'affiche mais là vu mon année est un input et non un select comme les deux autres, elle se s'affiche pas. Normal! mais je ne sais pas récupérer mon annee a partir d'un input text.
Le mieux serait-il de mettre mon année dans une liste délourante?(ce qui n'est pas trés pratique pour la saisie)
ou alors si on peut la récupérer comme telle?

Encore merci de ta disponibilité tu m'aide grandement






--Vibration--
Messages postés
7
Date d'inscription
lundi 2 juin 2008
Statut
Membre
Dernière intervention
3 juin 2008

En fait j'ai réussi à trouver :

--Vibration--