Aide fonction find vs form

Résolu
anthony613 Messages postés 3 Statut Membre -  
anthony613 Messages postés 3 Statut Membre -
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>

3 réponses

  1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 832
     
    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
  2. anthony613 Messages postés 3 Statut Membre
     
    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
    1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 832
       
      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
  3. anthony613 Messages postés 3 Statut Membre
     
    ok merci, cela fonctionne.

    Anthony
    0