Во-первых, ваш элемент <form>
не имеет символа >
в конце открывающего тега.
Затем ваш скрипт запускается сразу после загрузки страницы, и в это времяпользователь не имел возможности что-либо ввести в поле.
Далее, document.write
не следует использовать в этой ситуации, поскольку он перезапишет существующий документ.Вместо этого установите пустой элемент, в который вы будете записывать свои выходные данные.
Кроме того, поскольку вы фактически нигде не отправляете данные формы, не используйте кнопку отправки и событие submit
.Просто используйте обычную кнопку и ее событие click
.
И не используйте встроенные атрибуты события HTML (onsubmit
).Вместо этого настройте свои обработчики событий в JavaScript.
Наконец, вы не дали ни одному элементу id
, поэтому вы не можете использовать .getElementById()
для поиска любого.
<!DOCTYPE html>
<html>
<head>
<title>Practice</title>
<link rel="stylesheet" href="stylesheet.css">
</head>
<body>
<h1 id="first">My Practice Page!</h1>
<form name="myForm">
<label>Name:</label><br>
<input type="text" name="fname" id="fname">
<!-- Use a regular button since you aren't submitting form data anywhere -->
<input type="button" value="Submit">
</form>
<div id="output"></div>
<script>
// Set up a click event handler for the button
document.querySelector("[type='button']").addEventListener("click", validateForm);
// Get the reference to your text field. You can't get it by its id unless you've
// given it an id. name is not the same thing as id.
var fName = document.getElementById("fname");
// You didn't have your code inside of the callback function
function validateForm(){
if (fName.value == "Don") {
// Just populate a pre-existing element with the correct data.
output.textContent = "Hi, Don";
}
else {
output.textContent = "Hi, stranger.";
}
}
</script>
</body>
</html>