Aide fonction find vs form

Résolu/Fermé
anthony613 Messages postés 3 Date d'inscription samedi 16 octobre 2021 Statut Membre Dernière intervention 22 octobre 2021 - Modifié le 17 oct. 2021 à 11:17
anthony613 Messages postés 3 Date d'inscription samedi 16 octobre 2021 Statut Membre Dernière intervention 22 octobre 2021 - 22 oct. 2021 à 04:48
Bonjour,

Je cherche à remplacer dans ce code la source de : item.id == '1' donc du 1 par ce qui provient de <input type="text" id="somme" value=""/>

Quand la personne met une valeur dans la form somme, cette valeur va chercher l'ID correspondant et trouve la valeur name. Ensuite utilise cette valeur user.name pour les calculs

Merci de votre aide
<!DOCTYPE html>
<html> 
<head> 

<script language="JavaScript" type="text/javascript"> 
function AFFICHE(calcul){ 

 var somme = document.getElementById('somme').value;//saisie utilisateur 
 //on remplace la virgule par un point 
 somme = somme.replace(",",".", somme);  
 //on teste si la valeur est numérique 
 if (isNaN(somme)) 
 { 
  alert("Le nombre doit être numérique"); 
  return false; 
 }  

 //tout est ok 
    else 
 var calcul1 = ((user.name)*somme);//réponse 1 
 var calcul2 =(5700/2900)*calcul1;//réponse 2 
 var calcul3 = (1400/2900)*calcul1;//réponse 3  

 //Affiche le résultat dans "mon_div" 
 document.getElementById('mon_div').innerHTML = 'Saisie utilisateur : '+somme+'<br/>Calcul 1 : '+calcul1+'<br/>Calcul 2 : '+calcul2+'<br/>Calcul 3 : '+calcul3+'';  
} 

// test recherche ID
            let users = [
              {id: 1, name: 3},
              {id: 2, name: 4},
              {id: 3, name: 5}
            ];

            let user = users.find(item =>item.id == '1');

</script> 

</head> 

<body> 

<form id="form" name="form"> 
<input type="text" id="somme" value=""/>  
<input type="button" value="go" onclick="javascript:AFFICHE();"> 
</form> 

<div id="mon_div"></div> 

</body> 
</html>
A voir également:

3 réponses

jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
Modifié le 17 oct. 2021 à 11:20
Bonjour,
Il te suffit de remplacer le '1' par le contenu de ton input ...
et en JS, pour cibler un élément via son id, il existe : document.getElementById
ou sinon le querySelector

Une fois l'élément ciblé, tu peux utiliser la méthode .value pour récupérer son contenu...

Ce que tu as déjà fait ici
var somme = document.getElementById('somme').value;//saisie utilisateur 


et donc :

 let user = users.find(item =>item.id == somme );




0
anthony613 Messages postés 3 Date d'inscription samedi 16 octobre 2021 Statut Membre Dernière intervention 22 octobre 2021
20 oct. 2021 à 00:29
Bonjour,
Merci pour le suivi, j'ai essayé de mettre que somme mais cela ne fait pas le calcul... Peut-être ma séquence.
Anthony
0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
20 oct. 2021 à 07:58
En même temps,
Tu declenches ton code a quel moment ?
La, visiblement c'est au chargement de la page.
Donc la variable somme n'existe pas...
Il faut déplacer ton code de recherche dans ta fonction affiche
0
anthony613 Messages postés 3 Date d'inscription samedi 16 octobre 2021 Statut Membre Dernière intervention 22 octobre 2021
22 oct. 2021 à 04:48
ok merci, cela fonctionne.

Anthony
0