Проблема с подтверждением ввода даты старше 18 лет

1

У меня есть поле ввода даты в форме, которая дает дату рождения от пользователя. Я создал проверку бэкэнд, которая проверяет, что дата рождения, введенная пользователем, превышает 18 лет, необходимо реализовать это на интерфейсе, используя некоторый Javascript или Jquery, о котором я понятия не имею, как с этим справиться.

Поле ввода, содержащее дату рождения

<div class="form-line registar love {{ $errors->has('dob') ? ' has-error' : '' }}">
      <input type="date" class="form-input" name="dob" value="{{ old('dob') }}" required>
      <label>Date of Birth *</label>
      <div class="error-label">Field is required!</div>
      <div class="check-label"></div>
      @if ($errors->has('dob'))
            <span class="help-block">
            <strong>{{ $errors->first('dob') }}</strong>
            </span>
      @endif
    </div>
Теги:
date

2 ответа

0
Лучший ответ
    function validateForm(event) {
        // Store value of date of birth field
        let dateOfBirthFieldValue = document.getElementById("dob").value;
        let bday = new Date(dateOfBirthFieldValue);
        let todayDate = new Date();
        let timeDiff = Math.abs(todayDate.getTime() - bday.getTime());
        let diffyears = Math.ceil(timeDiff / (1000 * 3600 * 24)/365); 
        return diffyears > 18; // or you can change value according to your requirement
    }
  • 0
    Большое спасибо, что, если я хочу генерировать некоторые пользовательские сообщения об ошибках для отображения пользователю.
  • 0
    let isValid = diffyears> 18; if (! isValid) {document.getElementById ("dobError"). innerHTML = "--- message error -"; } return isValid;
Показать ещё 1 комментарий
0

Возможно, вы могли бы использовать прослушиватель событий onSubmit, чтобы сначала прослушать представленную форму:

document.getElementById("my-form").addEventListener('submit', validateForm);

function validateForm(event) {
    // Store value of date of birth field
    let dateOfBirthFieldValue = document.getElementById("dob").value;

    // Boolean to store the status of the validation
    let isValid = false;

    // some validation logic (as per backend), set isValid to true if dob is valid

    // if isValid is false, the form will not submit
    return isValid; 
}

Вы также можете добавить некоторую логику в функцию для обновления соответствующей метки формы, чтобы включить информацию об ошибке. Должно быть довольно просто с jQuery. Вот еще одно чтение.

  • 0
    Хорошо, должным образом отмечено ,,, Что я хочу, так это некоторая логика, чтобы проверить, если выбранная дата старше 18 лет от текущей даты ,, если ture выдает ошибку пользователю, например, вам должно быть больше 18 лет
  • 0
    Ах, извинения. Я не был уверен, нужна ли вам логика или помощь в обработке представления.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню