Hola, estoy intentando crear una calculadora y tengo un problema:
Haciendo click a los botones funciona, pero cuando con el teclado escribes la operación y le das a Enter, la operación desaparece y no sale el resultado.
Lo que quiero es que al dar al Enter pase lo mismo que cuando le doy con el ratón en el botón de Resultado: que me muestre el resultado.
He estado mirando y el código de Enter con JavaScript es 13.
Les dejo el código haber si me pueden ayudar.
Gracias.
Código:
<html>
<head>
<title>Calculadora</title>
<link rel="stylesheet" type="text/css" href=".css">
<!--Script Calculadora-->
<script type="text/javascript">
function addChar(input, character)
{
if(input.value == null || input.value == "0")
input.value = character
else
input.value += character
}
function deleteChar(input)
{
input.value = input.value.substring(0, input.value.length - 1)
}
function changeSign(input)
{
// could use input.value = 0 - input.value, but let's show off substring
if(input.value.substring(0, 1) == "-")
input.value = input.value.substring(1, input.value.length)
else
input.value = "-" + input.value
}
function compute(form)
{
form.display.value = eval(form.display.value)
}
function square(form)
{
form.display.value = eval(form.display.value) * eval(form.display.value)
}
function checkNum(str)
{
for (var i = 0; i < str.length; i++) {
var ch = str.substring(i, i+1)
if (ch < "0" || ch > "9") {
if (ch != "/" && ch != "*" && ch != "+" && ch != "-"
&& ch != "(" && ch!= ")") {
alert("invalid entry!")
return false
}
}
}
return true
}
</script>
</head>
<body>
<form>
<table border="5" align=center>
<tr align="center">
<td colspan = 4>
<table border="3">
<tr>
<td align=center>
<!--Input Resultado-->
<input name="display" value="" size=20 autofocus></td>
</tr>
</table>
</td>
</tr>
<tr align=center>
<td>
<input type="button" value=" 7 "
onClick="addChar(this.form.display, '7')">
</td>
<td>
<input type="button" value=" 8 "
onClick="addChar(this.form.display, '8')">
</td>
<td>
<input type="button" value=" 9 "
onClick="addChar(this.form.display, '9')">
</td>
<td>
<input type="button" value=" / "
onClick="addChar(this.form.display, '/')">
</td>
</tr>
<tr align=center>
<td>
<input type="button" value=" 4 "
onClick="addChar(this.form.display, '4')">
</td>
<td>
<input type="button" value=" 5 "
onClick="addChar(this.form.display, '5')">
</td>
<td>
<input type="button" value=" 6 "
onClick="addChar(this.form.display, '6')">
</td>
<td>
<input type="button" value=" * "
onClick="addChar(this.form.display, '*')">
</td>
</tr>
<tr align=center>
<td>
<input type="button" value=" 1 "
onClick="addChar(this.form.display, '1')">
</td>
<td>
<input type="button" value=" 2 "
onClick="addChar(this.form.display, '2')">
</td>
<td>
<input type="button" value=" 3 "
onClick="addChar(this.form.display, '3')">
</td>
<td>
<input type="button" value=" - "
onClick="addChar(this.form.display, '-')">
</td>
</tr>
<tr align=center>
<td>
<input type="button" value=" 0 "
onClick="addChar(this.form.display, '0')">
</td>
<td>
<input type="button" value=" . "
onClick="addChar(this.form.display, '.')">
</td>
<td>
<input type="button" value=" +/- "
onClick="changeSign(this.form.display)">
</td>
<td>
<input type="button" value=" + "
onClick="addChar(this.form.display, '+')">
</td>
</tr>
<tr align=center>
<td>
<input type="button" value=" ( "
onClick="addChar(this.form.display, '(')">
</td>
<td>
<input type="button" value=" ) "
onClick="addChar(this.form.display, ')')">
</td>
<td>
<input type="button" value=" sq "
onClick="if (checkNum(this.form.display.value))
{ square(this.form) }">
</td>
<td>
<input type="button" value=" <- "
onClick="deleteChar(this.form.display)">
</td>
</tr>
<tr align=center>
<td colspan="2">
<!--Botón de resultado-->
<input type="button" value=" Resultado " name="enter"
onClick="if (checkNum(this.form.display.value))
{ compute(this.form) }">
</td>
<td colspan="2">
<input type="button" value=" C "
onClick="this.form.display.value = 0 ">
</td>
</tr>
</table>
</form>
</body>
</html>