Saisis d'une valeur par menue (javascript)

Fermé
teipouf Messages postés 30 Date d'inscription lundi 18 août 2008 Statut Membre Dernière intervention 17 mars 2015 - 18 juil. 2009 à 12:34
teipouf Messages postés 30 Date d'inscription lundi 18 août 2008 Statut Membre Dernière intervention 17 mars 2015 - 18 juil. 2009 à 20:14
bonjour à tous,

Voila j'ai un petit problème avec mon script (je suis débutant dans ce langage^^). J'aimerai faire un outil de conversion du type bar => Pa, °C => K etc. voila je srcipt que j'ai commencé :


<script language="javascript" type="text/javascript">
var constante_pression='0';
function unite()
{
if((document.getElementById("unite").value=="barPa"))
{
constante_pression=100000;
}
}

function calculer()
{
var nombre = document.getElementById("nombre").value;
var id = document.getElementById("resultat");
id.innerHTML="Résultat : " + (constante_pression*nombre);
}
</script>

<div id="corps">
<h1>ECIM</h1>
<p><br />

          <select name="select" onChange="choix=this.options[this.selectedIndex].value;if (choix){menuderoulant2 (choix,10,10,480,600,'toolbar=yes,location=yes,status=yes,menubar=yes,scrollbars=yes,resizable=yes')}>
            <option value="">unitée</option>
            <option value="barPa">bar=>Pa</option>
            <option value="barmbar">bar=>mbar</option>
            <option value="PahPa">Pa=>hPa</option>
            <option value="barmmH2O">bar=>mmH2O</option>
          </select>
Entrez la pression <input type="text" name="nombre" id="nombre" onkeyup='calculer()'/>

<br/>
<div id="resultat">
Résultat :
</div>



je n'arrive pas a affecter la constante si je choisi a l'aide du menue déroulant bar=Pa

merci d'avance

loic
A voir également:

7 réponses

Zempachi Messages postés 7472 Date d'inscription vendredi 14 octobre 2005 Statut Contributeur Dernière intervention 5 juin 2020 906
18 juil. 2009 à 12:42
Salut,
voici quelques modifs:

var constante_pression=0; //sans les guilemets


id.innerHTML="Résultat : " + eval(constante_pression*nombre);


Essaye ça pour voir.
0
teipouf Messages postés 30 Date d'inscription lundi 18 août 2008 Statut Membre Dernière intervention 17 mars 2015
18 juil. 2009 à 12:53
merci pour t'as réponse aussi rapide en faite ce qui ne fonctionne pas c'est quand je choisi avec mon menu déroulant une valeur il m'affiche 0.

Quand je choisis bar=>Pa je voudrai que le javascript prenne en compte la valeur barPa pour que la constante soit de 100000. Et la ça ne fonctionne pas.
0
Zempachi Messages postés 7472 Date d'inscription vendredi 14 octobre 2005 Statut Contributeur Dernière intervention 5 juin 2020 906
18 juil. 2009 à 13:19
Si je comprends bien, tu veux que dès lors on sélectionne "bar=>Pa" sans rien saisir dans l'input "nombre", que le résultat soit égal à la constante "constante_pression" soit 100 000?
Si c'est le cas alors fais un test sur "nombre" avant de calculer le résultat : si nombre vaut 0 alors affiche la valeur de la constante "constante_pression".


0
teipouf Messages postés 30 Date d'inscription lundi 18 août 2008 Statut Membre Dernière intervention 17 mars 2015
18 juil. 2009 à 13:35
c'est à peu prés ca mais je veux que quand je sélectionne bar=>Pa ca me prennent en compte la constante_pression et que ca calcule le résulta avec la constante_presssion*le nombre saisi

exemple si je choisi bar=>Pa et un nombre 5 le résulta =500000
0
Zempachi Messages postés 7472 Date d'inscription vendredi 14 octobre 2005 Statut Contributeur Dernière intervention 5 juin 2020 906
18 juil. 2009 à 14:34
Ok,
mais avec les modifs suggérées, cela ne corrige rien?
0
teipouf Messages postés 30 Date d'inscription lundi 18 août 2008 Statut Membre Dernière intervention 17 mars 2015
18 juil. 2009 à 14:41
non rien ne se passe.
j'ai réussi a peut prés avec 3 input,

<script language="javascript" type="text/javascript">
var constante_pression='0';
function unite()
{
if((document.getElementById("unite_entree").value=="bar"||"BAR"||"Bar")&&(document.getElementById("unite_sortie").value=="Pa"||"PA"||"pa"))
{constante_pression=100000;}
}

function calculer()
{
var nombre = document.getElementById("nombre").value;
var id = document.getElementById("resultat");
id.innerHTML="Résultat : " + (constante_pression*nombre);
}
</script>

<div id="corps">
<h1>ECIM</h1>
<p>Bonjour<br />
Entrez l'unité <input type="text" name="unite" id="unite_entree" onkeyup='unite()'/>
conversion en quel unité <input type="text" name="unite" id="unite_sortie" onkeyup='unite()'/>
Entrez la pression <input type="text" name="nombre" id="nombre" onkeyup='calculer()'/>

<br/>
<div id="resultat">
Résultat :
</div>


voila mais a la place des input "entré l'unité" et "convertion..." j'aimerai mettre un script comme le suivant
1
          <select name="menu2" onChange="choix=this.value ;if (choix){menuderoulant2 (choix,10,10,480,600,'toolbar=yes,location=yes,status=yes,menubar=yes,scrollbars=yes,resizable=yes')}">
            <option value="">Unité</option>
            <option value="barPa">bar=>Pa</option>
            <option value="barmbar">bar=>mbar</option>
          </select>

0
Zempachi Messages postés 7472 Date d'inscription vendredi 14 octobre 2005 Statut Contributeur Dernière intervention 5 juin 2020 906
18 juil. 2009 à 14:54
Ok,
je n'avais pas vu dans ton premier message , dans le code à aucun moment tu appelles la fonction unite().
Donc normal que cela t'affiche 0.
Et puis qu'est ce que c'est que le bout de code dans le onChange du select???
Il te faudra appeler la fonction unite() dans ce onChange.
0

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

Posez votre question
teipouf Messages postés 30 Date d'inscription lundi 18 août 2008 Statut Membre Dernière intervention 17 mars 2015
18 juil. 2009 à 15:10
j'ai essayer ça :

<script language="javascript" type="text/javascript">
var constante_pression='0';
function unite()
{
if((document.getElementById("unite_entree").value=="barPa")
{
constante_pression=100000;
}

}

function calculer()
{
var nombre = document.getElementById("nombre").value;
var id = document.getElementById("resultat");
id.innerHTML="Résultat : " + (constante_pression*nombre);
}
</script>



<div id="corps">
<div id="corps">
<h1>ECIM</h1>
<p><br />

<select name="menu2" id="unite_entree" onchange="unite();">
            <option value="Unite">Unité</option>
            <option value="barPa">bar=>Pa</option>
            <option value="barmbar">bar=>mbar</option>
</select>

Entrez la pression <input type="text" name="nombre" id="nombre" onkeyup='calculer()'/>
<br/>
<div id="resultat">
Résultat :


mais je n'arrive pas au résulta je commence a désespérer
0
Zempachi Messages postés 7472 Date d'inscription vendredi 14 octobre 2005 Statut Contributeur Dernière intervention 5 juin 2020 906
18 juil. 2009 à 15:21
Salut,
normal car pour récupérer la value d'un select ce n'est pas
document.getElementById("unite_entree").value

mais
var monSelect = document.getElementById("unite_entree");
if(monSelect){
   monSelect.options[monSelect.selectedIndex ].value;
   
}

EDIT: oups, j'avais oublié le 's' à options
0
teipouf Messages postés 30 Date d'inscription lundi 18 août 2008 Statut Membre Dernière intervention 17 mars 2015
18 juil. 2009 à 20:14
merci pour t'as réponse,

j'ai essayé un autre scrip qui a l'aire de fonctionné

<script language="javascript" type="text/javascript">
var facteur = {
	Unite : 0,
	barPa : 5,
	barmbar : 3
};
function calculer(oSrc)
{
	var valeur = parseFloat(document.getElementById('entree').value);
	if(isNaN(valeur)) {
		valeur = 'Veuillez entrer un nombre correct';
	} else if(!isFinite(Math.pow(valeur,facteur[oSrc.value]))) {
		valeur = valeur + " . 10<sup>" + facteur[oSrc.value] + "</sup>";
	} else {
		valeur = valeur * Math.pow(10,facteur[oSrc.value]);
	}
	document.getElementById('sortie').innerHTML = valeur;
}
</script>


<div id="corps">
<h1>ECIM</h1>
<p><br />
<input type="text" id="entree"/>
<select name="menu2" onchange="calculer(this);">
            <option value="Unite">Unité</option>
            <option value="barPa">bar=>Pa</option>
            <option value="barmbar">bar=>mbar</option>
</select>
<p id="sortie"></p>


voila je vais essayer ton script merci encore
0