Reputation: 33
<html>
<head>
<script>
function dis(val)
{
document.getElementById("result").value+=val
}
//function that evaluates the digit and return result
function solve()
{
let x = document.getElementById("result").value
let y = eval(x)
document.getElementById("result").value = y
}
//function that clear the display
function clr()
{
document.getElementById("result").value = ""
}
</script>
</head>
<body>
<div class = title >GeeksforGeeks Calculator</div>
<table border="1">
<tr>
<td colspan="3"><input type="text" id="result"/></td>
<!-- clr() function will call clr to clear all value -->
<td><input type="button" value="c" onclick="clr()"/> </td>
</tr>
<tr>
<!-- create button and assign value to each button -->
<!-- dis("1") will call function dis to display value -->
<td><input type="button" value="1" onclick="dis('1')"/> </td>
<td><input type="button" value="2" onclick="dis('2')"/> </td>
<td><input type="button" value="3" onclick="dis('3')"/> </td>
<td><input type="button" value="/" onclick="dis('/')"/> </td>
</tr>
<tr>
<td><input type="button" value="4" onclick="dis('4')"/> </td>
<td><input type="button" value="5" onclick="dis('5')"/> </td>
<td><input type="button" value="6" onclick="dis('6')"/> </td>
<td><input type="button" value="-" onclick="dis('-')"/> </td>
</tr>
<tr>
<td><input type="button" value="7" onclick="dis('7')"/> </td>
<td><input type="button" value="8" onclick="dis('8')"/> </td>
<td><input type="button" value="9" onclick="dis('9')"/> </td>
<td><input type="button" value="+" onclick="dis('+')"/> </td>
</tr>
<tr>
<td><input type="button" value="." onclick="dis('.')"/> </td>
<td><input type="button" value="0" onclick="dis('0')"/> </td>
<!-- solve function call function solve to evaluate value -->
<td><input type="button" value="=" onclick="solve()"/> </td>
<td><input type="button" value="*" onclick="dis('*')"/> </td>
</tr>
</table>
</body>
</html>
I wanted to delete a single digit(last entered digit) rather than the clearing the whole. The code consists of html and javsript. I am confused about how to clear a single digit because my code clears the whole of it. How do I make this change using substring in onclick?
Upvotes: 2
Views: 2898
Reputation: 31992
Your input id is result
, not res
. Also, use .substring(0, value.length-1)
to get the value without the last character.
<html>
<head>
<script>
function dis(val) {
document.getElementById("result").value += val
}
//function that evaluates the digit and return result
function solve() {
let x = document.getElementById("result").value
let y = eval(x)
document.getElementById("result").value = y
}
//function that clear the display
function clr() {
document.getElementById("result").value = ""
}
function del() {
var input = document.getElementById("result");
input.value = input.value.substring(0, input.value.length - 1);
}
</script>
</head>
<body>
<div class=t itle>GeeksforGeeks Calculator</div>
<table border="1">
<tr>
<td colspan="3"><input type="text" id="result" /></td>
<!-- clr() function will call clr to clear all value -->
<td><input type="button" value="c" onclick="clr()" /> </td>
<td><input type="button" value="del" onclick="del()" /> </td>
</tr>
<tr>
<!-- create button and assign value to each button -->
<!-- dis("1") will call function dis to display value -->
<td><input type="button" value="1" onclick="dis('1')" /> </td>
<td><input type="button" value="2" onclick="dis('2')" /> </td>
<td><input type="button" value="3" onclick="dis('3')" /> </td>
<td><input type="button" value="/" onclick="dis('/')" /> </td>
</tr>
<tr>
<td><input type="button" value="4" onclick="dis('4')" /> </td>
<td><input type="button" value="5" onclick="dis('5')" /> </td>
<td><input type="button" value="6" onclick="dis('6')" /> </td>
<td><input type="button" value="-" onclick="dis('-')" /> </td>
</tr>
<tr>
<td><input type="button" value="7" onclick="dis('7')" /> </td>
<td><input type="button" value="8" onclick="dis('8')" /> </td>
<td><input type="button" value="9" onclick="dis('9')" /> </td>
<td><input type="button" value="+" onclick="dis('+')" /> </td>
</tr>
<tr>
<td><input type="button" value="." onclick="dis('.')" /> </td>
<td><input type="button" value="0" onclick="dis('0')" /> </td>
<!-- solve function call function solve to evaluate value -->
<td><input type="button" value="=" onclick="solve()" /> </td>
<td><input type="button" value="*" onclick="dis('*')" /> </td>
</tr>
</table>
</body>
</html>
Upvotes: 1