Мое обязательное поле в моей форме HTML не работает

Я создал HTML с обязательными полями, а затем кнопку «Отправить» с помощью ng-click=add().

Код следующий:

Enter name:
    <div class = "mb-3">
      <label class = "form-label">Enter surname:</label>
      <input type = "text" class = "form-control" placeholder = "Person surname" ng-model= "newPerson.surname" required>
    </div>
    
    <div class = "mb-3">
      <label class = "form-label">Enter age:</label>
      <input type = "text" class = "form-control" placeholder = "Person age" ng-model= "newPerson.age" required>
    </div>

    <div class = "mb-3">
      <label class = "form-label">Enter occupation:</label>
      <input type = "text" class = "form-control" placeholder = "Person occupation" ng-model= "newPerson.occupation" required>
    </div>
    
    <button type = "submit" class = "btn btn-primary" ng-click = "add()">Add</button>
    
</form>

При нажатии на кнопку добавляет человека и потом мне говорит что поля обязательны но в моем списке человек уже есть неопределенные значения.

Я также объявил в верхней части документа.

Спасибо

Вызывайте add() при отправке, а не при нажатии кнопки.

madzong 13.05.2022 10:51

Извините, но что вы имеете в виду под «при отправке»? Спасибо

Julio 13.05.2022 10:53

Спасибо, я только что узнал способ.

Julio 13.05.2022 11:00
Поведение ключевого слова "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) для оценки ваших знаний,...
0
3
30
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

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

Вы также можете использовать метод проверки для проверки входных данных при отправке вместо обязательного. пример

public validateForm() {
  if (newPerson.surname === null || 
  newPerson.surname === undefined || newPerson.surname === " ")
  {
    error.surname = "Surname is required";
  }
  if (newPerson.age === null || 
  newPerson.age === undefined || newPerson.age === " ")
  {
    error.age = "Age is required";
  }
  if (newPerson.occupation === null || 
  newPerson.occupation === undefined || newPerson.occupation === " ")
  {
    error.occupation = "Occupation is required";
  }
  
  if (newPerson.surname !== null || 
  newPerson.surname !== undefined || newPerson.surname !== " " ||
  newPerson.age !== null || 
  newPerson.age !== undefined || newPerson.age !== " " ||
  newPerson.occupation !== null || 
  newPerson.occupation !== undefined || newPerson.occupation !== "
  )
  {
    this.add();
  }

}
  <div class = "mb-3">
      <label class = "form-label">Enter surname:</label>
      <input type = "text" class = "form-control" placeholder = "Person surname" ng-model= "newPerson.surname" required>
    </div>
    <span *ngIf = "error.surname"> {{error.surname}}</span>
    <div class = "mb-3">
      <label class = "form-label">Enter age:</label>
      <input type = "text" class = "form-control" placeholder = "Person age" ng-model= "newPerson.age" required>
    </div>
    <span *ngIf = "error.age"> {{error.age}}</span>
    <div class = "mb-3">
      <label class = "form-label">Enter occupation:</label>
      <input type = "text" class = "form-control" placeholder = "Person occupation" ng-model= "newPerson.occupation" required>
    </div>
    <span *ngIf = "error.occupation"> {{error.occupation}}</span>
    <button type = "submit" class = "btn btn-primary" ng-click = "validateForm()">Add</button>
    
</form>

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