Проблема заключается в этой строке:
var usname = document.getElementById("name").innerHTML = greeting;
Во-первых, вы дважды используете знак =
- я бы не стал этого делать. Вместо этого вы можете использовать два варианта:
document.getElementById("name").innerHTML = greeting;
var usname = document.getElementById("name");
usname.innerHTML = greeting;
Я выбрал первый вариант.
Другое дело, что для элементов input
вам необходимо используйте value
, а не innerHTML
. Элемент div
, span
или аналогичный элемент будет иметь свойства innerHTML
и innerText
, но входные данные - нет.
Полное рабочее решение см. В приведенном ниже фрагменте:
function calc() {
greeting = "hello"
document.getElementById("name").value = greeting;
}
<header>
<p> BMI Calculator</p>
</header>
<div class="grid">
<div class=input>
<form>
<p> Fill in the form below</p>
Name: <br>
<input type="text" name="name" id="name"><br> Weight: <br>
<input type="number" name="weight"><br> Height: <br>
<input type="number" name="height"><br>
<input type="radio" name="gender" value="female">Female
<input type="radio" name="gender" value="male">Male
<input type="radio" name="gender" value="other">Other<br>
<br><input type="button" onclick="calc()" name="calculate" value="calculate">
</form>
</div>
<div class="result">
<p> Your Results</p>
</div>
</div>