Récupérer la valeur de mon select [Résolu]

Signaler
Messages postés
1100
Date d'inscription
jeudi 13 septembre 2012
Statut
Membre
Dernière intervention
1 septembre 2020
-
Messages postés
1100
Date d'inscription
jeudi 13 septembre 2012
Statut
Membre
Dernière intervention
1 septembre 2020
-
Bonjour,

Je souhaite récupérer la valeur de mon select de cette façon:


var soulignement="";

if (document.emailform.soulignement.value != "")
{
style=document.emailform.soulignement.value;
}
else
{
soulignement='';
}
et dans mon formulaire:

<select size="1" name="soulignement" id="soulignement">
      <option value="text-decoration:underline">Avec soulignement</option>
      <option value="text-decoration:none">Sans soulignement</option>
      </select>

Je sais que je ne dois pas en êre bien loin mais cela me retourne une valeur "undefined".

Je vous remercie de votre aide.

7 réponses

Messages postés
29567
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
19 septembre 2020
337
Bonsoir,

N'oublies pas d'utiliser les balises de code stp...

Bon sinon.. Déjà ... ton ELSE n'a aucun interet (ici)
var soulignement=document.emailform.soulignement;
// Pour tester :
if (typeof soulignement=== "undefined") {
    alert("soulignement is undefined");
}else{
  alert(soulignement.value);
}
//------------------------------------------//
if (soulignement.value != ""){
   style=document.emailform.soulignement.value;
} 


Si ton "objet" est undefined... c'est que tu appelles peut-être ton script javascript AVANT que ton objet n'existe...
Tu peux essayer de déplacer ton code JS sous le code html qui te créé ton SELECT.

Si ton souci persiste.. merci de nous coller ici TOUT ton formulaire HTML ainsi que ta fonction JS complète (pas seulement ces quelques lignes).


Messages postés
1100
Date d'inscription
jeudi 13 septembre 2012
Statut
Membre
Dernière intervention
1 septembre 2020

En fait tout fonctionne sauf pour mon select:


function objectTag() {
var emailcc="";
var emailbody="";
var email="";
var emailsubject="";
var mailtext="";
var title="";
var soulignement="";
if (document.emailform.title.value != "")
{
titre=document.emailform.title.value;
}
else
{
title='';
}
if (document.emailform.soulignement.value != "")
{
style=document.emailform.soulignement.value;
}
else
{
soulignement='';
}
if (document.emailform.linktext.value != "")
{
mailtext=document.emailform.linktext.value;
}
else
{
mailtext='';
}
if (document.emailform.emailtext.value != "")
{
email='\?to\=' + document.emailform.emailtext.value;
}
else
{
email='';
}
if (document.emailform.subtext.value != "")
{
emailsubject='\&subject\=' + escape(document.emailform.subtext.value);
}
else {emailsubject='';
}
if (document.emailform.cctext.value != "")
{
emailcc='\&cc\=' + document.emailform.cctext.value;
}
else
{
emailcc='';
}
if (document.emailform.bodytext.value != "")
{
emailbody='\&body\=' + escape(document.emailform.bodytext.value);
}
else
{
emailbody='';
}
if (document.emailform.emailtext.value != "")
{
return ('<A STYLE=\"'+ style +'\" TITLE=\"'+ titre + '\"' + ' HREF=\"mailto:' + email + emailsubject + emailcc + emailbody +'\">' + mailtext + '</A>');
}
else
{
return('');
}
}


<script language="JavaScript" src="mailto.js"></script>
<link href="mailto.css" rel="stylesheet" type="text/css" />
</head>
<body>

<form name="emailform" method="post" action="">
<table>
<tr>
<td valign="middle" style="width:100px">Texte du lien</td>
<td valign="middle"style="width:250px"><input type="text" name="linktext"></td>
<td valign="middle" style="width:20px"><input style="width:16px;height:16px;valign:middle" type="image" src="mailto.gif" align="middle" onClick='displayHelpMessage("Saisissez le texte qui doit apparaître sur la page")'></td>
</tr>
<tr>
<td valign="middle" style="width:100px">Soulignement</td>
<td valign="middle" style="width:250px"><select size="1" name="soulignement" id="soulignement">
<option value="text-decoration:underline">Avec soulignement</option>
<option value="text-decoration:none">Sans soulignement</option>
</select></td>
<td valign="middle" style="width:20px"><input style="width:16px;height:16px;valign:middle" type="image" src="mailto.gif" align="middle" onClick='displayHelpMessage("Le texte sera souligné ou non.")'></td>
</tr>
<tr>
<td valign="middle" style="width:100px">Texte au survol</td>
<td valign="middle" style="width:250px"><input type="text" name="title" id="title"></td>
<td valign="middle" style="width:20px">
<input style="width:16px;height:16px" type="image" src="mailto.gif" align="middle" onClick='displayHelpMessage("Saisissez le texte qui doit apparaître au survol")'>
</span></td>
</tr>
<tr>
<td valign="middle" style="width:100px">Destinataire</td>
<td valign="middle" style="width:250px"><input type="text" name="emailtext"></td>
<td valign="middle" style="width:20px">
<input style="width:16px;height:16px" type="image" src="mailto.gif" align="middle" onClick='displayHelpMessage("Saisissez le mail du destinataire")'>
</span></td>
</tr>
<tr>
<td valign="middle" style="width:100px">Sujet</td>
<td valign="middle" style="width:250px"><input type="text" name="subtext"></td>
<td valign="middle" style="width:20px">
<input style="width:16px;height:16px" type="image" src="mailto.gif" align="middle" onClick='displayHelpMessage("Saisissez le sujet")'>
</span></td>
</tr>
<tr>
<td valign="middle" style="width:100px">Cc</td>
<td valign="middle" style="width:250px"><input type="text" name="cctext"></td>
<td valign="middle" style="width:20px">
<input style="width:16px;height:16px" type="image" src="mailto.gif" align="middle" onClick='displayHelpMessage("Saisissez le mail pour la copie du message")'>
</span></td>
</tr>
<tr>
<td valign="middle" style="width:100px">Message</td>
<td valign="middle" style="width:250px"><textarea name="bodytext"></textarea></td>
<td valign="middle" style="width:20px">
<input style="width:16px;height:16px" type="image" src="mailto.gif" align="middle" onClick='displayHelpMessage("Saisissez le message que votre visiteur apercevra")'>
</span></td>
</tr>
<tr>
<td></td>
<td valign="middle"></td>
<td valign="middle"><input type="button" onclick="javascript:objectTag()" value="Envoyer"></td>
<td></td>
</tr>
</table>
</form>
Messages postés
1767
Date d'inscription
vendredi 9 mai 2008
Statut
Modérateur
Dernière intervention
31 août 2020
87
et en utilisant

document.getElementById('soulignement').value
Messages postés
1100
Date d'inscription
jeudi 13 septembre 2012
Statut
Membre
Dernière intervention
1 septembre 2020

J'obtiens

[object Select]
Messages postés
1767
Date d'inscription
vendredi 9 mai 2008
Statut
Modérateur
Dernière intervention
31 août 2020
87
la variable style donne lui un autre nom ca peut etre la cause du probleme
Messages postés
1100
Date d'inscription
jeudi 13 septembre 2012
Statut
Membre
Dernière intervention
1 septembre 2020

Non ça fait pareil. Mais si je fais


<select size="1" value="text-decoration:underline" name="soulignement" id="soulignement">
ça fonctionne mais c'est pas le but d'une liste.
Messages postés
29567
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
19 septembre 2020
337
En gardant ta balise select comme tu l'avais écrite avant :
<select size="1" name="soulignement" id="soulignement">
      <option value="text-decoration:underline">Avec soulignement</option>
      <option value="text-decoration:none">Sans soulignement</option>
      </select>


Essayes ça pour en récupérer sa valeur :
var e = document.getElementById("soulignement");
var style = e.options[e.selectedIndex].value;
alert(style); 

Messages postés
1100
Date d'inscription
jeudi 13 septembre 2012
Statut
Membre
Dernière intervention
1 septembre 2020

Oui super ça marche merci encore !