Я новичок в JS и пытаюсь учиться самостоятельно. Я надеюсь, что здесь меня не обидят, но Stackoverflow выглядит как место, где можно задавать вопросы.
У меня есть этот код для расчета, и он работает. Но я хочу изменить приглашение для ввода и показать результаты на других входах с помощью кнопки отправки.
Или же! Что было бы удивительно, если бы расчет происходил на лету, пока пользователь вводил числа (я даже не уверен, возможно ли это).
Заранее спасибо, и пока это мой JS-код:
var incomePerYear = prompt("Income per year: ");
var perYear = parseFloat(((incomePerYear) * 1 / 100) - (incomePerYear * 6 / 1000));
var perMonth = parseFloat(perYear / 12);
document.write("Income per year: " + perYear.toLocaleString('se') + "<br>");
document.write("Income per month: " + perMonth.toFixed(4));
Наверное, с подсказкой не получится. Но если вы будете использовать типичный ввод, вы можете получить доступ к событию «при изменении» w3schools.com/jsref/event_onchange.asp
@ PrzemysławKaczmarczyk Спасибо.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Вы можете использовать событие onkeyup для расчета на лету.
Кстати, parseFloat для ряда лишний.
function calculate(incomePerYear) {
var perYear = incomePerYear / 100 - incomePerYear * 6 / 1000,
perMonth = perYear / 12;
document.getElementById('year').innerHTML = perYear.toLocaleString('se');
document.getElementById('month').innerHTML = perMonth.toFixed(4);
}<p>Income per year: <input onkeyup = "calculate(this.value)" type = "text"></p>
<p>Income per year: <span id = "year"></span></p>
<p>Income per month: <span id = "month"></span></p>Большое спасибо, этот код очень компактный. Когда я вижу это таким образом, все проясняется в моей голове. Еще раз спасибо.
Вы можете попробовать это. Возможно, вам нужно проверить ввод, чтобы убедиться, что это номер.
<input type = "text" id = "incomeperyear">
<div id = "perYear"></div>
<div id = "perMonth"></div>
<script type = "text/javascript">
$(function(){
$('#incomeperyear').on('focus keyup change', function(){
var incomePerYear = $(this).val();
var perYear = parseFloat(((incomePerYear) * 1 / 100) - (incomePerYear * 6 / 1000));
var perMonth = parseFloat(perYear / 12);
$("#perYear").text('perYear :'+' '+perYear.toLocaleString('se'));
$("#perMonth").text('perMonth :'+' '+perMonth.toFixed(4));
});
})
</script>
Это сработает, даже если вы скопируете номер в другое место.
https://jsfiddle.net/c982myft/
Большое спасибо, но я не мог заставить это работать.
Пожалуйста, проверьте эту скрипку. он работает нормально, я думаю, jsfiddle.net/c982myft
Да! Странно, что здесь не сработало. Очистил кеш и теперь все работает. Еще раз спасибо.
В чем вам нужна помощь? Вы пытались использовать элементы и кнопки ввода HTML, привязывая к ним события и, наконец, показывая результат?