- ベストアンサー
JavaScriptでの足し算処理について
本日よりJavaScriptに取り組んでいますが、いきなり足し算の処理でつまずきました。 下記の様にdeta1に10を入れ、計算ボタンを押すとdeta2に25が入るような処理を行いたいのですが、10が文字として認識されてしまうらしく、deta2が1015になってしまいます。 かなり基本的なことだと思いますが、どうすればよいか教えてください。 <script language="JavaScript"> <!-- function func1(){ document.test.deta2.value=document.test.deta1.value+15; } //--> </script> <form name=test> <INPUT type="text" name="deta1"> <INPUT type=button value="計算" onClick=func1()> <INPUT type="text" name="deta2"> </form>
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
小数点も扱いたいなら,下記のソースがいいかと思います. <script language="JavaScript"> <!-- function func1(){ document.test.deta2.value=eval(document.test.deta1.value)+15; } //--> </script> <form name=test> <INPUT type="text" name="deta1"> <INPUT type=button value="計算" onClick=func1()> <INPUT type="text" name="deta2"> </form>
その他の回答 (3)
- wolv
- ベストアンサー率37% (376/1001)
+15 のところを、 -0+15 にするだけでもいけます。 引き算することで、数値に変換されます。
お礼
回答ありがとうございます。 裏技っぽい感じがしますが、いちばん簡単ですね。
- osamuy
- ベストアンサー率42% (1231/2878)
with ( document.test ){ deta2.value = Number( deta1.value ) + 15; } deta1.valueはStringオブジェクトなので、演算子+が文字列連結演算子として評価されるので、 Number(deta1.value)で、数値に変換してます。
補足
回答ありがとうございます。 こういう場合は数値に変換しないといけないのですね。
- taknt
- ベストアンサー率19% (1556/7783)
document.test.deta2.value=document.test.deta1.value+15; を document.test.deta2.value=parseInt(document.test.deta1.value)+15; にしてみたら どうでしょうか? もしかして、数値を文字列にしないとエラーが出るかもしれませんが。
お礼
回答ありがとうございます。 すばやく回答してくださる方がいると本当に助かります。
お礼
回答ありがとうございます。 汎用性がありそうなので、こちらを使わせてもらおうと思います。