2017-10-17 17 views
0

J'essaie d'écrire un petit programme pour déterminer les facteurs communs entre deux nombres. J'ai un problème pour obtenir les chiffres, cependant. Voici mon code HTML:Récupération de la valeur numérique de l'entrée au lieu de l'objet

<p>Please input two numbers to find the common factors between them.</p> 
First number:<input type="number" id="firstNumber"></br> 
Second number:<input type="number" id="secondNumber"></br> 
<button onclick="commonFactors(document.getElementById('firstNumber'), 
document.getElementById('secondNumber'))">Submit</button> 

Cependant, au lieu d'obtenir les numéros en arrière, la console renvoie les éléments suivants:

"<input type='number' id='firstNumber'>" "<input type='number' 
    id='secondNumber'>" 

Avec les guillemets. Pouvez-vous me dire ce que je fais mal?

Je ne sais pas c'est important, mais voici la JS:

function commonFactors(num1, num2) { 
    console.log(num1, num2); 
    var counter=Math.min(num1, num2); 
    var factors=[]; 
    var k=0; 
    for (i=1; i<counter; i++) { 
    if (num1%i==0) { 
     if (num2%i==0) { 
     factors[k]=i; 
     } 
    } 
    k+=1; 
    } 
}; 

Répondre

1

Vous voulez obtenir la valeur de l'entrée, et non pas l'entrée elle-même:

document.getElementById ('firstNumber') .value

+0

Merci! Voir le commentaire ci-dessus. –

2

parce document.getElementById('firstNumber') est à l'entrée se référant, utilisez +document.getElementById('firstNumber').value avis les + parce que les valeurs que vous obtenir à partir d'une entrée sont de type string nous utilisons donc l'+ pour les transformer à un certain nombre

Remarque: vous pouvez utiliser une fonction au lieu de + il est appelé parseInt() pour les entiers et parseFloat() pour les nombres flottants

le résultat est

<button onclick="commonFactors(parseInt(document.getElementById('firstNumber').value), 
parseInt(document.getElementById('secondNumbe').value)">Submit</button> 
+0

Merci à vous deux! Il a fallu une combinaison de parseInt et de .value pour fonctionner. –

+0

oui, vous aurez besoin des deux comme indiqué dans le premier paragraphe. J'ai oublié d'ajouter .value dans l'exemple – Laassari