Я пытаюсь исправить форму, но код javascript не сохраняется. Кто-нибудь знает, в чем может быть проблема? Я пытался несколько часов, но браузер не распознает код javascript ..
HTML
<!DOCTYPE html>
<html lang = "en">
<head>
<meta charset = "UTF-8">
<title>Page title</title>
<link rel = "stylesheet" href = "style/structure.css" type = "text/css" />
<link rel = "stylesheet" href = "style/form.css" type = "text/css" />
<link rel = "stylesheet" href = "style/theme.css" type = "text/css" />
<script type = "text/javascript" src = "scripts/validate.js"></script>
</head>
Что-то не так с файловой структурой. У меня есть файл javascript в папке «scripts», имя файла - «validate.js». Все должно работать, но не работает ..
Javascript
window.onload = function() {
var form = document.getElementsByTagName("form")[0];
form.onsubmit = validate;
function validate() {
var firstName = document.getElementById("field_firstname").value;
if (firstName.length == 0) {
alert("Please enter your first name");
document.getElementById("field_firstname");
return false;
}
var lastName = document.getElementById("field_lastname").value;
if (lastName.length == 0) {
alert("Please enter your last name");
document.getElementById("field_lastname");
return false;
}
var email = document.getElementById("field_email").value;
if (email.length == 0) {
alert("Please enter your full e-mail adress");
document.getElementById("field_email");
return false;
}
if (confirm("Do you wish to complete the registration?")) {
return true;
} else {
alert("The registration was cancelled");
return false;
}
Включите свой html - в блоке об электронном письме есть опечатка.
Ваш код включен в раздел <head>?
Он включен .. даже простое "привет, мир" не работает ..



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


Ваш код работает (см. Прилагаемый фрагмент).
Я заметил некоторые проблемы со скобками в опубликованном вами коде. Функция Validate и onload не закрыта (отсутствует})
Также может быть, что onload уже запущен, когда ваш скрипт загружен. Возможно, вы захотите проверить, вызывается ли функция onload. (отладчик; console.info () или предупреждение ('onload');
window.onload=function(){
var form = document.getElementsByTagName("form")[0];
form.onsubmit = validate;
}
function validate() {
var firstName = document.getElementById("field_firstname").value;
if (firstName.length == 0) {
alert("Please enter your first name");
document.getElementById("field_firstname");
return false;
}
var lastName = document.getElementById("field_lastname").value;
if (lastName.length == 0) {
alert("Please enter your last name");
document.getElementById("field_lastname");
return false;
}
var email = document.getElementById("field_email").value;
if (lastName.length == 0) {
alert("Please enter your full e-mail adress");
document.getElementById("field_email");
return false;
}
if (confirm("Do you wish to complete the registration?")) {
return true;
} else {
alert("The registration was cancelled");
return false;
}
}<form>
field_firstname<input id = "field_firstname" type = "text"><br/>
field_lastname<input id = "field_lastname" type = "text"><br/>
field_email<input id = "field_email" type = "text"><br/>
<input type = "submit">
</form>в блоке о е-мейле есть опечатка из операции lastName.length == 0.
Используйте <form id = "registration_form" onsubmit = "validate ()">