Javascript - форма для исправления

Я пытаюсь исправить форму, но код 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;
      }

Используйте <form id = "registration_form" onsubmit = "validate ()">

ivanjermakov 06.04.2018 22:20

Включите свой html - в блоке об электронном письме есть опечатка.

JasonB 06.04.2018 22:25

Ваш код включен в раздел <head>?

Kristianmitk 06.04.2018 22:32

Он включен .. даже простое "привет, мир" не работает ..

Karl 06.04.2018 23:55
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
2
4
46
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Ваш код работает (см. Прилагаемый фрагмент).

Я заметил некоторые проблемы со скобками в опубликованном вами коде. Функция 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.

JasonB 06.04.2018 22:26

Другие вопросы по теме