I do simple volume calculations for shapes. Every time the user selects a different figure reset the select value to an empty field. I've tried reset() but it clears all options. I would like it to be done automatically, and not with a button each time I select a different option.
<form action="javascript:calculate()" onchange="javascript:upform()">
<label for="id_shapes">List</label>
<select id="id_shapes" >
<option value="sphere" selected>sphere</option>
<option value="cone">cone</option>
</select>
<br><br>
<div id="id_inputs_sphere" >
<label for="id_radius">radius</label>
<input id="id_radius" type="number" min="0" step="any">
<h2><em>formula: = 4/3*Π*R<sup>3</sup></em></h2>
</div>
<div id="id_inputs_cone" hidden>
<label for="id_radius2">radius</label>
<input id="id_radius2" type="number" min="0" step="any">
<label for="id_height2">height</label>
<input id="id_height2" type="number" min="0" step="any">
<h2><em>formula: = 1/3*Π*R<sup>2</sup>*H</em></h2>
</div>
<input type="submit" value="Calculate">
<p id="id_output"></p>
</form>
<script>
function upform() {
document.getElementById("id_inputs_sphere").hidden = true;
document.getElementById("id_inputs_cone").hidden = true;
let shape = document.getElementById("id_shapes").value;
switch (shape) {
case "sphere":
document.getElementById("id_inputs_sphere").hidden = false;
break;
case "cone":
document.getElementById("id_inputs_cone").hidden = false;
break;
}
}
function calculate() {
let shape = document.getElementById("id_shapes").value;
let area = 0;
switch (shape) {
case "sphere":
let radius = document.getElementById("id_radius").value;
area = 4/3 * Math.PI * radius**3;
document.getElementById("id_output").innerHTML = "result = " + area;
break;
case "cone":
let radius2 = document.getElementById("id_radius2").value;
let height2 = document.getElementById("id_height2").value;
area = 1/3 * Math.PI * radius2**2 * height2
document.getElementById("id_output").innerHTML = "result = " + area;
break;
}
}