2011-12-15 5 views
1

JavaScriptについては比較的新しいので、2つの入力からどのように値を追加して結果をエコーアウトするのだろうと思いました。ここで私がこれまで持っているものです。Javascript変数を追加する

function math (form) { 
    var input1 = form.input1.value; 
    var input2 = form.input2.value; 
    var input3 = input1 + input2; 
    document.write (input3); 
} 
<form action="" method="GET"> 
    <input type="text" name="input1"> 
    <input type="text" name="input2"> 
    <input type="button" name="button" onClick="math(this.form)"> 
</form> 

私は、各入力に番号を入力するとき、それは2つの数の合計を吐き出すだろうと予想。代わりに、両方の数字を個別に印刷するだけです。

2つの数値の合計を出力するにはどうすればよいですか?

答えて

16

.valueは、テキストボックス内の文字、つまり文字列を返します。あなたは何とかJavaScriptに数字であることを伝える必要があります。それ以外の場合は、文字列を連結しています(str + strは連結されています; num + numは算術的に加算されます)。あなたのケースではそう

+input1 

:数への変換

文字列は、最も簡単にこのような+で行われ

document.write(+input1 + +input2); 

しかし、document.writeは、物事を表示するための方法ではありません。 alertが必要な場合や、別のテキストボックスなどに入れてください。 document.writeは画面を消去します。

+0

先端に感謝します。他のものが整理されるまで私はdocument.writeを一時的に使っていました。 – codedude

1

最初にparseIntを使用して整数に解析する必要があります。

12

彼らは、[編集]だけ手の込んだする

var input3 = parseInt(input1, 10) + parseInt(input2, 10); 

、あなたがそれらを読んだとき、彼らが最初に解析されなければならない文字列で、parseIntと単項プラスとの違いは、エラー処理であり、

var a = parseInt('123o45', 10); //123 
var b = +'123o45' // NaN 
+0

+ 1 + '' parseInt'とUnary Plusの違いを指摘するために、基数 –

+1

+1を覚えています。 – Jonas

3

parseIntはここにあなたfirend ..です

function math (form) { 
    var input1 = form.input1.value; 
    var input2 = form.input2.value; 
    var input3 = parseInt(input1, 10) + parseInt(input2, 10); 
    document.write (input3); 
} 
+3

基数を指定しないParseIntは一般的には悪い考えです。 'parseInt(input1、10)'でなければ、すべての文字列を10進数として解析していることを確認してください。 – Paulpro

関連する問題