Я новичок в Javascript и только начинаю изучать его на уроках веб-дизайна. Я работаю над проектом с Javascript внутри HTML. У меня все это написано, но похоже, что HTML не вызывает функцию Javascript. Я искал решение, но, похоже, ничего не работает. Код такой:
<html>
<head>
<script>
var calculateInterest = function(){
var rate;
var total;
var years = document.getElementById("years").value;
var principleAmount = document.getElementById("principal").value;
var interestRate = document.getElementById("intrest").value;
if ((interestRate >= 0) && (interestRate <= 15)) {
rate = interestRate / 100;
if ((principleAmount >= 0) && (principleAmount <= 10000)) {
total = principleAmount * (1 + rate * years);
document.getElementById("total_with_intrest").value = total;
}
else {
message-box ("Invalid data for principle amount.");
}
}
else {
message-box ("Invalid data for interest rate.");
}
}
</script>
<style>
form{ border: solid blue;
width:40em;
padding:0.5em;}
input{padding: 0.5em;}
</style>
</head>
<body>
<form>
Enter Principal Ammount : <input type = "text" id = "principal" />
</br>
Enter Intrest Rate : <input type = "text" id = "intrest" />
</br>
Enter Number of Years : <input type = "text" id = "years" />
</br>
Grand Ammount : <input type = "text" id = "total_with_intrest" disabled /></br>
</br>
<input type = "button" id = "click" value = "Calculate" onclick=calculateInterest()/> </br>
</form>
</body>
</html>
Ошибка браузера: «SyntaxError: ожидаемое выражение, получено '}'» в строке 2, но я просто не могу понять, в чем проблема. Любая помощь приветствуется!
Примечание: я знаю, что есть некоторые странные орфографические ошибки. Мой инструктор из Индии и не совсем владеет английским языком. Она создала для нас HTML-файл, а нам просто нужно вставить Javascript.



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


Нет функции message-box. Вы имели ввиду alert()? Ваш код в настоящее время работает с этими изменениями:
var calculateInterest = function(){
var rate;
var total;
var years = document.getElementById("years").value;
var principleAmount = document.getElementById("principal").value;
var interestRate = document.getElementById("intrest").value;
if ((interestRate >= 0) && (interestRate <= 15)) {
rate = interestRate / 100;
if ((principleAmount >= 0) && (principleAmount <= 10000)) {
total = principleAmount * (1 + rate * years);
document.getElementById("total_with_intrest").value = total;
}
else {
alert("Invalid data for principle amount.");
}
}
else {
alert("Invalid data for interest rate.");
}
}form{ border: solid blue;
width:40em;
padding:0.5em;}
input{padding: 0.5em;}<form>
Enter Principal Amount : <input type = "text" id = "principal" />
</br>
Enter Interest Rate : <input type = "text" id = "intrest" />
</br>
Enter Number of Years : <input type = "text" id = "years" />
</br>
Grand Amount : <input type = "text" id = "total_with_intrest" disabled /></br>
</br>
<input type = "button" id = "click" value = "Calculate" onclick = "calculateInterest()" /> </br>
</form>Small Nitpick: исправлены мелкие опечатки, не связанные с кодом. Сумма => Сумма. Интерес => Интерес.
@ Katie.Sun Ага, похоже. Обновил свой ответ.
Это сработало! Большое спасибо! Я не мог точно вспомнить, что это было, и пошел, чтобы оставить себе комментарий, чтобы вернуться к нему, и он автоматически заполнил окно сообщения, поэтому я подумал, что это правильно.
Я думаю, вы обнаружите, что функция вызывается без кавычек