2017-05-10 28 views
0

2つの値をとり、それらを乗算するJavaScript関数に入力値を渡す際に問題があります。私の数字をハードコードすると、うまくいきます。しかし、私が入力値を使用しようとすると、何も得られません。undefinedもありません。ここに私のコードは次のとおりです。JavaScript関数への入力値の受け渡し

function multiply (val1, val2) { 
 
    var n = val1; 
 
    for(var i = 1; i < val2; i++) { 
 
    n += val1; 
 
    } 
 
    return n; 
 
} 
 

 
var result = multiply(document.getElementById('first').value, document.getElementById('second').value); 
 

 
document.getElementById('result').innerHTML = result;
<h1>Mutiplication Algorithm</h1> 
 

 
<p>This algorithm attempts to multiply to given values without ever using the <span>*</span> operator</p> 
 

 
<input id="first" type="text" value=5 /> x 
 
<input type="text" value=4 /> = 
 
<span id="result"></span>

ありがとう!

+0

入力値の下のコードを見てください:) intとしてそれらを解析します。 –

+0

しかし、整数として渡しても動作しません。 –

+0

「整数として渡す」方法の例を示し、おそらく私はあなたを信じるでしょう。実際には、HTMLInputElementの[value'プロパティ](https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement#Properties)を使用して、 'value'属性を引用するかどうかにかかわらず、 )は文字列を返します。 –

答えて

2

コードを再度確認してください。 2番目の入力IDパラメータがありませんでした。あなたは整数として値を扱いたい場合はその後、単純に文字列を常に

function multiply (val1, val2) { 
 
    val1 = parseInt(val1); 
 
    var n = val1; 
 
    for(var i = 1; i < val2; i++) { 
 
    n += val1; 
 
    } 
 
    return n; 
 
} 
 

 
var result = multiply(document.getElementById('first').value, document.getElementById('second').value); 
 

 
document.getElementById('result').innerHTML = result;
<h1>Mutiplication Algorithm</h1> 
 

 
<p>This algorithm attempts to multiply to given values without ever using the <span>*</span> operator</p> 
 

 
<input id="first" type="text" value=5 /> x 
 
<input type="text" id="second" value="4" /> = 
 
<span id="result"></span>

関連する問題