Проблема сравнения двух дат с использованием javascript из петрушки - PullRequest
0 голосов
/ 06 ноября 2018

Я работаю над формой, в которой у меня есть 2 входа, содержащие 2 ввода даты, в основном дату отъезда и дату возвращения. Я использую петрушку Javascript для проверки. Мне нужна помощь в создании пользовательского правила проверки Js, которое сравнивает 2 поля и проверяет дата отъезда - это дата после сегодняшнего дня , тогда как дата возвращения должна составлять 3 дня или более после даты отъезда

Входные данные в форме

 <!-- Departure date-->
        <div class="form-line registar2 love {{ $errors->has('departure_date') ? ' has-error' : '' }}">
                 <input type="date" class="form-input" name="departure_date" value="{{ old('departure_date') }}" required data-parsley-depart= ''>

                 <label>Departure Date *</label>
                <div class="error-label">Field is required!</div>
                <div class="check-label"></div>
                  @if ($errors->has('departure_date'))
                    <span class="help-block">
                      <strong>{{ $errors->first('departure_date') }}</strong>
                    </span>
                  @endif
        </div>
    <!--End departure-->

    <!-- Return date-->
        <div class="form-line registar2 move {{ $errors->has('return_date') ? ' has-error' : '' }}">
                 <input type="date" class="form-input" name="return_date" value="{{ old('return_date') }}" required data-parsley-return= ''>

                 <label>Return Date *</label>
                <div class="error-label">Field is required!</div>
                <div class="check-label"></div>
                  @if ($errors->has('return_date'))
                    <span class="help-block">
                      <strong>{{ $errors->first('return_date') }}</strong>
                    </span>
                  @endif
        </div>
    <!-- End return date-->

Пользовательский код петрушки Js

//Deparure date
window.Parsley.addValidator('departure_date', {
  validateString: function (value) {
            var now = new Date();
            var date = new Date(value);
            return date < now;
        }
  messages: {
    en: 'Please insert tomorrow or anydate in the future'
  }
});

//Return date
window.Parsley.addValidator('return_date', {
  validateString: function (value) {
            var now = new Date();
            var date = new Date(value);
            return date < now;
  },
  messages: {
    en: 'Your return date should be 3 days or more after departure date'
  }
});

1 Ответ

0 голосов
/ 07 ноября 2018

Работа с зависимостями немного сложнее. Вы можете сделать что-то вроде в этом примере или добавить валидатор к одному входу и вызвать событие 'input' там, когда другой вход получит событие 'input'.

...