Saisis d'une valeur par menue (javascript)

teipouf Messages postés 30 Date d'inscription   Statut Membre Dernière intervention   -  
teipouf Messages postés 30 Date d'inscription   Statut Membre Dernière intervention   -
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   Statut Contributeur Dernière intervention   906
 
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   Statut Membre Dernière intervention  
 
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   Statut Contributeur Dernière intervention   906
 
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   Statut Membre Dernière intervention  
 
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   Statut Contributeur Dernière intervention   906
 
Ok,
mais avec les modifs suggérées, cela ne corrige rien?
0
teipouf Messages postés 30 Date d'inscription   Statut Membre Dernière intervention  
 
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   Statut Contributeur Dernière intervention   906
 
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   Statut Membre Dernière intervention  
 
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   Statut Contributeur Dernière intervention   906
 
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   Statut Membre Dernière intervention  
 
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