#javascript
#javascript
Вопрос:
Пытаюсь запустить скрипт при загрузке страницы со значением ввода при загрузке страницы. Скрипт работает нормально onchange, но я также хочу запускаться при загрузке страницы. Я попробовал onload=»calculateAmount(this.value);»>
<input type="number" name="tot_pin_requested" id="tot_pin_requested" class="inputbox autowidth" value="{{ PPDEFAULT_VALUE }}" onchange="calculateAmount(this.value);">
<script>
function calculateAmount(val) {
var price = val * 1;
//display the result
var tot_price = price (price * 0.029 .30);
tot_price.toFixed(2);
var divobj = document.getElementById('amount');
divobj.value = tot_price;
}
</script>
Ответ №1:
Не добавляйте его в элемент, просто отделите его:
<script>calculateAmount(document.querySelector("#tot_pin_requested").value);</script>
Ответ №2:
Если вы хотите быть уверены, что документ готов, просто используйте DOMContentLoaded
event .
Также я предлагаю вам использовать parseFloat
on inputValue, чтобы оно правильно менялось с типа string на тип number . (или parseInt(value, radix), если у вас будут только значения int)
Также я не знаю, в чем заключается логика var price = val * 1
….
Смотрите ниже
window.addEventListener('DOMContentLoaded', (event) => {
const inputValue = document.getElementById('tot_pin_requested').value
calculateAmount(parseFloat(inputValue))
})
function calculateAmount(val) {
var price = val * 1;
//display the result
var tot_price = price (price * 0.029 .30);
tot_price.toFixed(2);
var divobj = document.getElementById('amount');
divobj.value = tot_price;
}
<input type="number" name="tot_pin_requested" id="tot_pin_requested" class="inputbox autowidth" value="10" onchange="calculateAmount(this.value);">
<input type="number" id="amount">