Проверка выбора даты в многострочном режиме не работает - PullRequest
1 голос
/ 21 июня 2020

Я вставил два средства выбора даты, чтобы выбрать даты "от" до "внутри нескольких строк. Теперь я хочу проверить «с даты» и «на сегодняшний день». Поэтому я добавил проверки следующим образом.

$request->validate([
            'from.*' => 'required',
            'to.*' => 'required',
        ],
        [
            'from.required' => 'Please select from date.',
            'to.required' => 'Please select to date.'
        ]
    );

Но он не показывает проверки, хотя я не выбрал дату в средстве выбора даты, , потому что средство выбора даты получает дату по умолчанию как текущую дату . (Текущая дата по умолчанию отображается внутри текстового поля)

Вот лезвие. php и скрипты

<td><input type="text" name="addmore[0][from]" placeholder="from" class="form-control" /></td>
<td><input type="text" name="addmore[0][to]" placeholder="" class="form-control" /></td> 

<script type="text/javascript">
    var i = 0;
    $("#add").click(function(){
        ++i;
    
$("#dynamicTable").append('<tr><td><input type="text" name="addmore['+i+'][from]" placeholder="" class="form-control" value="{{ old('from') }}" /></td><td><input type="text" name="addmore['+i+'][to]" placeholder="" class="form-control" value="{{ old('to') }}" /></td><td><button type="button" class="btn btn-danger remove-tr">Remove</button></td></tr>');

$(function() {
  $('input[name="addmore['+i+'][from]"],[name="addmore['+i+'][to]"]').daterangepicker({
    singleDatePicker: true,
    showDropdowns: true,
    minYear: 1995,
    maxYear: parseInt(moment().format('YYYY'),10)
  }, function(start, end, label) {
    var years = moment().diff(start, 'years');
  });
  }); 

    });

    $(document).on('click', '.remove-tr', function(){  
         $(this).parents('tr').remove();
    });  

$(function() {
  $('input[name="addmore[0][from]"],[name="addmore[0][to]"]').daterangepicker({
    singleDatePicker: true,
    showDropdowns: true,
    minYear: 1995,
    maxYear: parseInt(moment().format('YYYY'),10)
  }, function(start, end, label) {
    var years = moment().diff(start, 'years');
  });
  });
</script>

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

1 Ответ

0 голосов
/ 21 июня 2020

В валидаторе вы также должны указать формат даты:

$request->validate([
            'from.*' => 'required|date_format:date-format-here',
            'to.*' => 'required|date_format:date-format-here',
        ],
        [
            'from.required' => 'Please select from date.',
            'to.required' => 'Please select to date.'
        ]
    );

Laravel поддерживает ограничения формата даты php: http://php.net/date

...