JavaScriptで計算機を作りました。
半角数字かつ0以上の数値のみ計算が可能という条件付きです。
条件そのものはクリアしたのですが、
数値入力の際に最初の[0]が残ってしまいます(01→1扱いなど)
修正を何日か行いましたが前に進まない状態です。
下記に作成プログラムを掲載しますので解決方法をご享受頂けると幸いです。
以上、よろしくお願いします。
HTML
1<!DOCTYPE HTML> 2<html> 3<head> 4<meta charset="UTF-8"> 5<title>計算機</title> 6<link rel="stylesheet" type="text/css" href="keisan.css"> 7<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script> 8<script type="text/javascript" src="keisan.js"></script> 9</head> 10 <body> 11 <form name="keisan_form" action="keisan.html"> 12 <div class = "nyuryoku1"> 13 <input type="text" name="text1" onKeyUp = "checkNum(this)">+ 14 </div> 15 <div class = "nyuryoku2"> 16 <input type="text" name="text2" onKeyUp = "checkNum(this)">= 17 </div> 18 <div class = "kekka"> 19 <textarea name="kekka" cols="10" rows="1"></textarea> 20 </div> 21 <div class = "button"> 22 <input id = "button1" type = "button" value = "計算ボタン" onclick = "keisan()"> 23 <input id = "button2" type = "reset" value = "リセット" /> 24 </div> 25 </form> 26 </body> 27</html> 28
CSS
1@charset "UTF-8"; 2.nyuryoku1{ 3 float:left; 4} 5.nyuryoku2{ 6 float:left; 7} 8.kekka{ 9 float:left; 10} 11.button{ 12 clear:left; 13} 14#button1{ 15 float:left; 16 margin-right:70px; 17 margin-left:30px; 18 cursor:pointer; 19} 20#button2{ 21 float:left; 22 cursor:pointer; 23}
JavaScript
1var num1,num2,goukei; 2//入力エリア1,2の値が数値かどうか判断 3function keisan(){ 4 //入力エリア1,2が共に数値なら計算 5 if((isNumber(keisan_form.text1.value) == true) && (isNumber(keisan_form.text2.value) == true)){ 6 num1 = Number(keisan_form.text1.value); 7 num2 = Number(keisan_form.text2.value); 8 goukei = num1 + num2; 9 keisan_form.kekka.value = goukei; 10 //計算不可なら警告 11 }else{ 12 alert("入力できるのは0以上の半角数値のみです"); 13 keisan_form.text1.value = ""; 14 keisan_form.text2.value = ""; 15 keisan_form.kekka.value = ""; 16 } 17} 18 19function checkNum(btn){ 20 if(btn == "0"){ 21 } 22} 23 24function isNumber(n){ 25 //負数なら 26 if(Number(n) < 0){ 27 return false; 28 } 29 //数値以外またはブランク 30 if(isNaN(Number(n)) || isNaN(eval(n))){ 31 return false; 32 } 33 //数値なら 34 return true; 35}
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/09/26 04:21
2016/09/26 04:28
2016/09/26 05:28
2016/09/26 05:51
2016/09/26 05:56