I’m doind a calc in JS but my C (clear button) don’t work?
<!DOCtYPE html>
<html>
<head>
<title>Calculadora em JS</title>
<link rel="stylesheet" type="text/css" href="Calc.css">
</head>
<body>
<form id="calc">
<input name="numero1" type="text" id="num1">
</form>
<div id="calculator">
<input name="num" type="button" value="1" onclick="display('1')">
<input name="num" type="button" value="2" onclick="display('2')">
<input name="num" type="button" value="3" onclick="display('2')">
<input name="num" type="button" value="5" onclick="display('3')">
<input name="num" type="button" value="3" onclick="display('4')">
<input name="num" type="button" value="4" onclick="display('5')">
<input name="num" type="button" value="6" onclick="display('6')">
<input name="num" type="button" value="7" onclick="display('7')">
<input name="num" type="button" value="8" onclick="display('8')">
<input name="num" type="button" value="9" onclick="display('9')">
<input name="num" type="button" value="0" onclick="display('0')">
<input name="operacao" class="op" type="button" value="+" onclick="display('+')">
<input name="operacao" class="op" type="button" value="-" onclick="display('-')">
<input name="operacao" class="op" type="button" value="*" onclick="display('*')">
<input name="operacao" class="op" type="button" value="/" onclick="display('/')">
<input name="operacao" class="op" type="button" value="%" onclick="display('%')">
<input name="resultado" type="button" onclick="foo()" value="Calcular">
<input name="resultado" type="button" onclick="clear()" value="C">
</div>
<div id="res_div">
<p id="res" style=" color:beige;">Resultado</p>
</div>
</body>
<script>
function display(p) {
document.getElementById('num1').value += p
}
function foo() {
var num1 = document.getElementById('num1').value;
console.log(num1);
var enum1 = eval(num1);
console.log(enum1);
document.getElementById('num1').value = enum1;
}
function clear(){
document.getElementById('calc').reset();
}
</script>
</html>
Try using a different name for clear
. Perhaps clearCalc
? Not sure what it going on with clear
but as soon as I changed it to something else it worked.
1 Like
I think it’s got something to do with the old document.clear() method hiding the user-defined function for some reason
1 Like
Maybe this is the reason? Not sure honestly.
2 Likes
Thanks for the info @vinyl704 and @RandellDawson. Had no idea such a method existed at one time.
1 Like
I guess it did’t work. I took the unecessary divs and add a form instead made the change in the ID but still not working
<!DOCtYPE html>
<html>
<head>
<title>Calculadora em JS</title>
<link rel="stylesheet" type="text/css" href="Calc.css">
</head>
<body>
<form id="calc">
<input name="numero1" type="text" id="num1">
<input name="num" type="button" value="1" onclick="display('1')">
<input name="num" type="button" value="2" onclick="display('2')">
<input name="num" type="button" value="3" onclick="display('2')">
<input name="num" type="button" value="5" onclick="display('3')">
<input name="num" type="button" value="3" onclick="display('4')">
<input name="num" type="button" value="4" onclick="display('5')">
<input name="num" type="button" value="6" onclick="display('6')">
<input name="num" type="button" value="7" onclick="display('7')">
<input name="num" type="button" value="8" onclick="display('8')">
<input name="num" type="button" value="9" onclick="display('9')">
<input name="num" type="button" value="0" onclick="display('0')">
<input name="operacao" class="op" type="button" value="+" onclick="display('+')">
<input name="operacao" class="op" type="button" value="-" onclick="display('-')">
<input name="operacao" class="op" type="button" value="*" onclick="display('*')">
<input name="operacao" class="op" type="button" value="/" onclick="display('/')">
<input name="operacao" class="op" type="button" value="%" onclick="display('%')">
<input name="resultado" type="button" onclick="foo()" value="Calcular">
<input name="resultado" type="button" onclick="clearCalc()" value="C">
<div id="res_div">
<p id="res" style=" color:beige;">Resultado</p>
</div>
</form>
</body>
<script>
function display(p) {
document.getElementById('num1').value += p
}
function foo() {
var num1 = document.getElementById('num1').value;
console.log(num1);
var enum1 = eval(num1);
console.log(enum1);
document.getElementById('num1').value = enum1;
}
function clearCalc(){
document.getElementById('calc').reset();
}
</script>
</html>
Would you be a little more specific about what is not working now?
Also, I just noticed that the values on your number buttons don’t quite make sense.
Yes, I forgot to delete them.
I’m trying to call clearCalc() fuction by clicking on the C button.
This fuction should look for form id and reset the values in the form. This because I want to clear the input were my solutions are shown
I just tested the most recent code you pasted in here (using clearCalc
) and the clear button works for me. Are you getting any errors in the console?
1 Like
Thank you! I tried out in codepen and worked too. I guess the code didn’t run well in VS Code because the folder where it was save.