Почему ничего не выводится? - PullRequest
0 голосов
/ 26 апреля 2020

Я пытаюсь получить оператор if-else для вывода чего-либо, но ничего не происходит. Вы знаете, что не так? Это ошибка в синтаксисе? Я новичок в программировании, поэтому я очень ценю любую помощь. Спасибо!

<!DOCTYPE HTML>
<HTML>
<title>Calculator</title>
<head>
<meta charset="UTF-8">
<link rel="stylesheet" type="text/css"
href="csp.css">
<script>
function computeGrade() {
var pg = document.getElementById("pg").value;
var fg = document.getElementById("fg").value;
var wof = document.getElementById("wof").value;
var og = (cg * (1 - (wof / 100)) + (gof * (wof / 100)))
var prettyOg = og.toFixed(2)
document.getElementById("og").innerHTML = "Overall Grade: " + prettyOg + "%";
}
let csp;
function outputGrade(og) {
if (og > 90) {
csp = "you have an A!";
} else if (og > 80) {
csp = "you have a B!";
} else if (og > 70) {
csp = "you have a C!";
} else if (og > 60) {
csp = "you have a D!";
} else {
csp = "you are failing...";
}
}
document.getElementById("cs").innerHTML = csp;
</script>
</head>
<h1> Overall Grade Calculator</h1>
<p>Current grade: <input id="pg" min="1" max="120"
onchange="computeGrade()"></input></p>
<p> Grade on Final: <input id="fg" min="1" max="120"
onchange="computeGrade()"></input></p>
<p>Final weight: <input id="wof" min="1" max="100"
onchange="computeGrade()"></input></p>
<p><button>Submit</button></p>
<h2 id="og"></h2>
<h3 id="cs"></h3>
</body>
</html>

Ответы [ 3 ]

0 голосов
/ 26 апреля 2020

Я думаю, что ваша проблема в расчете og. Вы делаете var og = (cg * (1 - (wof / 100)) + (gof * (wof / 100))), но нет переменной с именем cg. Chage cg до fg, если это опечатка.

0 голосов
/ 26 апреля 2020

Прежде всего ваши переменные cg и gof являются опечатками и вместо них должны быть pg и fg соответственно.

Также ваша функция computeGrade() уже закрыта с } прямо перед тем, как вы определили let csp;, вы должны удалить эту закрывающую скобку.

Тогда функция outputGrade() нигде не вызывается. он должен быть вызван сразу после его определения. Хотя это также пустая трата кода, просто исключите эту функцию и используйте одну функцию computeGrade(), которая выполняет всю работу

Также ваши теги input имеют закрывающие теги </input>, что неправильно, правильный формат - <input/>, все, что было описано в приведенном ниже коде

Затем для ввода введите onkeyup, чтобы получить более наглядный вывод, но если это ваше предпочтение, onchange обновит результаты только при переходе к другому вводу, код ниже меняет вывод при каждом изменении значений в полях ввода, а не при изменении фокуса поля ввода, на котором вы пишете:

<html>
    <head>
        <title>Calculator</title>
        <meta charset="UTF-8" />

        <link rel="stylesheet" type="text/css" href="csp.css" />

        <script>
function computeGrade() {
var pg = document.getElementById("pg").value;
var fg = document.getElementById("fg").value;
var wof = document.getElementById("wof").value;
var og = (pg * (1 - (wof / 100)) + (fg * (wof / 100)))
var prettyOg = og.toFixed(2)
document.getElementById("og").innerHTML = "Overall Grade: " + prettyOg + "%";
let csp;
if (og > 90) {
csp = "you have an A!";
} else if (og > 80) {
csp = "you have a B!";
} else if (og > 70) {
csp = "you have a C!";
} else if (og > 60) {
csp = "you have a D!";
} else {
csp = "you are failing...";
}
document.getElementById("cs").innerHTML = csp;
}

        </script>
    </head>
    <body>
        <h1>Overall Grade Calculator</h1>
        <p>Current grade:
            <input id="pg" min="1" max="120" onkeyup="computeGrade()"/>

        </p>
        <p>
            Grade on Final:

            <input id="fg" min="1" max="120" onkeyup="computeGrade()"/>

        </p>
        <p>Final weight:
            <input id="wof" min="1" max="100" onkeyup="computeGrade()"/>

        </p>
        <p>
            <button>Submit</button>
        </p>
        <h2 id="og"></h2>
        <h3 id="cs"></h3>
    </body>
</html>```
0 голосов
/ 26 апреля 2020

Похоже, ваши cg и gof здесь не определены:

var og = (cg * (1 - (wof / 100)) + (gof * (wof / 100)))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...