Если вы хотите мгновенно получить результат по щелчку на полях ввода, тогда сделайте addEventListerner для элементов ввода, затем получите значение внутри percentageCalculator
и выполните вычисления соответственно ..
Я не модифицировал ничего из вашего HTML
, а только изменил JS
деталь ..
const myForm = document.getElementById('my-form');
const percent = document.querySelector('[name="percent"]');
const amount = document.querySelector('.amount');
const result = document.querySelector('[name="result"]');
function percentageCalculator() {
result.value = ((percent.value * amount.value) / 100).toFixed(2)
}
myForm.addEventListener('submit', e=>e.preventDefault())
myForm.addEventListener('input', percentageCalculator)
// myForm.result.value = percentageCalculator()
fieldset { margin-top: 1em;
}
label {
display: inline-block; width: 8em; text-align: left;
}
input {
font-size: .8em; text-align: left; display: inline-block; width: 8em;
}
output::before {
content: '';
}
output {
font-weight: bold; width: 16em; border-bottom: 1px solid lightgrey; display: block; margin: .8em; float: right; text-align: right;
}
<h2>Percentage Calculator</h2>
<form action="" id="my-form">
<fieldset>
<legend>Calculate Percentage :</legend>
<append>What is <input type="number" name="percent" step=any min=0> % of </append>
<label><input type="number" class="amount" step=any min=0></label>
</fieldset>
<fieldset><br>
<legend>Result :</legend>
<output name="result" value='0'></output>
<br><br>
<button type="reset">Reset Calculator!</button>
</fieldset>
</form>
Если вы можете изменить шаблон HTML
, тогда вы можете добавить атрибут name
ко входу суммы, а затем вы можете получить элемент с помощью myForm.inputName
..
Альтернативное решение: https://codepen.io/Maniraj_Murugan/pen/KKpdgXo