先ほど質問させていただき、= 自体は正常に動作したのですが、二回押さないと反応しません
なぜでしょうか?
javascript
1function den_equal() { 2 ans = eval(ans + kigou + num); //=ボタンを押すとこの計算が動く 3 document.getElementById("out").innerHTML = ans; 4 document.getElementById("type").innerHTML = ""; 5}
html+javascript
html
1<!DOCTYPE HTML> 2<html> 3<head> 4<meta charset="utf-8"> 5<title>電卓</title> 6</head> 7<body> 8<h1>電卓</h1> 9<hr> 10 11<form name="name"> 12<th colspan="3" align="right"><div id="out">0</div></th> 13<th><div id="type"></div></th> 14 15</form> 16 17<form name="den"> 18<table boder="2"> 19 20<tb><input type="button" value="7" onClick="den_run(7)"></tb> 21<tb><input type="button" value="8" onClick="den_run(8)"></tb> 22<tb><input type="button" value="9" onClick="den_run(9)"></tb> 23<br> 24<tb><input type="button" value="4" onClick="den_run(4)"></tb> 25<tb><input type="button" value="5" onClick="den_run(5)"></tb> 26<tb><input type="button" value="6" onClick="den_run(6)"></tb> 27<br> 28<tb><input type="button" value="1" onClick="den_run(1)"></tb> 29<tb><input type="button" value="2" onClick="den_run(2)"></tb> 30<tb><input type="button" value="3" onClick="den_run(3)"></tb> 31<br> 32<tb><input type="button" value="0" onClick="den_run(0)"></tb> 33<tb><input type="button" value="+" onClick="den_run('+')"></tb> 34<tb><input type="button" value="-" onClick="den_run('-')"></tb> 35<br> 36<tb><input type="button" value="*" onClick="den_run('*')"></tb> 37<tb><input type="button" value="/" onClick="den_run('/')"></tb> 38<tb><input type="button" value="C" onClick="den_clear('C')"></tb> 39<br> 40<tb><input type="button" value="・" onClick="den_period('.')"></tb> 41<tb><input type="button" value="=" onClick="den_equal('=')"></tb> 42 </table> 43</form> 44 45<script language="javascript"> 46ans = 0; //計算中の数字 47num = "0"; //押された数字キーを順番に表示 48Key = ""; //1つ前に押されたキーの記録 49kigou = ""; //数字かいくつか押された後記号キーの把握 50 51 52function den_run(btn) { //変数btnでキーからの情報を受けとる 53 if(!isNaN(btn)){ //数値か記号かで分岐 54 55 if(!isNaN(Key)) { //前に押されたキーは 56 if (num == "0") { //numが0の時 57 num = ""+btn; //キーからの情報 58 } else { 59 60 num += ""+btn; //真 連続して数字が押された場合 61 } 62 } else { 63 num = ""+btn; //偽 記号の後数字、数値を文字列 64 } 65 document.getElementById("out").innerHTML = num; //outの中身をnumへ 66 }else{ 67 if(!isNaN(Key)) { 68 69 } 70 kigou = btn; //記号を受け取ったらbtnから記号へ 71 document.getElementById("type").innerHTML = kigou; //記号が記録そのまま画面 72 } 73 Key = btn; //直前のキーは何か 74} 75function den_period() { 76 if (num.indexOf(".")<0) num +="."; //0より小さいときnumに.をプラスする。 77 document.getElementById("out").innerHTML = num; //outの内容書き換え 78} 79 80function den_clear() { 81 ans = 0; //計算中の数字消去 82 Key = ""; //1つ前の押されたキー削除 83 num = "0"; //押されたキー削除 84 kigou = ""; //記号キー削除 85 document.getElementById("out").innerHTML = num; 86 document.getElementById("type").innerHTML = kigou; 87} 88 89function den_equal() { 90 ans = eval(ans + kigou + num); //=ボタンを押すとこの計算が動く 91 document.getElementById("out").innerHTML = ans; 92 document.getElementById("type").innerHTML = ""; 93} 94 95 96</script> 97 98 99</body> 100</html>
回答2件
あなたの回答
tips
プレビュー