Accéder à une variable hors de la function?

Résolu/Fermé
chasseral1607 Messages postés 2 Date d'inscription lundi 18 janvier 2016 Statut Membre Dernière intervention 19 janvier 2016 - 18 janv. 2016 à 22:51
chasseral1607 Messages postés 2 Date d'inscription lundi 18 janvier 2016 Statut Membre Dernière intervention 19 janvier 2016 - 19 janv. 2016 à 13:04
Bonjour à tous,

J'ai un formulaire comme ceci:
<form method="post">
<input id="a" name="a" value="4"/>
<input id="b" name="b" value="2"/>
<input type="submit" value="Calculer" onclick="GetValueInput('a'),GetValueInput('b')"/>
</form>

Lors du clic, je récupère la valeur comme ceci:


<script type="text/javascript">

function GetValueInput(id){
var lol = document.getElementById('a').value;
console.log('lol:'+lol);
return lol;
}

console.log ( lol );

</script>

le log dans la fonction donne bien la valeur de 4, mais par contre le log en dehors de la fonction est undefined!

Comment récupérer une variable hors d'un fonction lorsqu'on l'emploie dans le formulaire?
A voir également:

3 réponses

Mesma262 Messages postés 42 Date d'inscription samedi 6 décembre 2014 Statut Membre Dernière intervention 24 septembre 2017 1
18 janv. 2016 à 23:25
Bonjour, tu passes la variable en paramètre de la fonction.

Cordialement
0
Normal les variables sont bien locale à une fonction en javascript.
Elles n'existent pas en dehors.
D'ailleurs vu qu'il y a l'instruction return ça suffit comme ceci:

<script>
function GetValueInput(id){ 
var lol = document.getElementById('a').value; 
console.log('lol:'+lol); 
return lol; 
} 

console.log ( GetValueInput('a') ); 
//ou bien
var valeur_de_a=getValueInput('a');
console.log(valeur_de_a);
</script>

Mais bon ce n'est pas la bonne façon de faire ni pour la gestion du click ni pour récupérer les valeurs d'un formulaire.
Il y a plus simple, plus rapide, plus efficace et plus propre.

Pour le click on peut utiliser un écouteur sur le formulaire (directement sur le bouton ou avec l'événement onSubmit) et pour récupérer les valeurs des champs simplement les lister dans un (variable de) tableau.

Et:

http://stackoverflow.com/questions/11810874/how-to-get-an-input-text-value-in-javascript
0
chasseral1607 Messages postés 2 Date d'inscription lundi 18 janvier 2016 Statut Membre Dernière intervention 19 janvier 2016
19 janv. 2016 à 13:04
Merci de vos réponses.
Je me suis rendu compte que cette manière de faire était vraiment pas optimale.

J'ai cherché à détecter l'événement on click sur un élément puis agir en fonction de l'événement.

Voici ce que j'ai fait:

<form method="post">
  <input id="a" name="a" value="4" />
  <input id="b" name="b" value="2" />
  <input id="calcul" value="Calculer" type="button" />
</form>

<div id="div">Coucou, je suis le contenu du div!</div>
<h2 id="resultat"></h2>


var calcul = document.getElementById('calcul'); // récupérer l'élément

// function à exécuter lorsque l'événement est acitvé
function myFunction() {
  var a = document.getElementById('a');
  var b = document.getElementById('b');
  var div = document.getElementById('div');
  document.getElementById('resultat').innerHTML = 'A:' + a.value + '<br />B:' + b.value + '<br />div: ' + div.innerHTML;
}

// enregistement du onclick de l'événement
calcul.onclick = myFunction;


Et le résultat sur https://jsfiddle.net/Larix/6w18ffbf/
0