【发布时间】:2021-07-30 01:55:42
【问题描述】:
我使用的是 Laravel 8.5(当前版本)
因此我是 laravel 的新手,我正在尝试通过简单的示例来学习。
我有一些刀片视图,代码部分如下:
<div class="form-group">
<input type="hidden" id="hdnLocale" value="ru">
<input type="hidden" name="hdndefDate" id="hdndefDate" value="2021-01-17">
@if (old('hdndefDate'))
<input type="hidden" name="hdndefDate" value="{{ old('hdndefDate') }}">
@endif
<label for="picker">Birthday</label>
<div class="input-group">
<div class="input-group-prepend">
<button type="button" class="input-group-text" id="toggle">
<i class="fa fa-calendar-alt"></i>
</button>
</div>
<input type="text" id="picker" name="picker" value="{{old('picker')}}" class="form-control" readonly>
</div>
</div>
如您所见,我使用了两个隐藏输入,带有来自控制器的变量值,必须从 javaScript 设置(简单来说,我使用精确值)。
这是我的脚本:
<script>
var locale = $('#hdnLocale').val()
jQuery.datetimepicker.setLocale(locale)
jQuery.datetimepicker.setDateFormatter('moment')
var yourDate = $('#hdndefDate').val();
$('#picker').val(yourDate);
$('#picker').datetimepicker({
timepicker: false,
datepicker: true,
format: 'YYYY-MM-DD',
defaultDate: yourDate,
weeks: false,
hours12: false,
step: 15,
yearStart: 2015,
yearEnd: 2022,
dayOfWeekStart: 1
});
$('#toggle').on('click', function () {
$('#picker').datetimepicker('toggle');
})
</script>
我还有一些其他输入,我已经通过控制器进行了验证,
当我更改 datepicker 的值时,发布表单和验证失败,其他字段设置为旧值,但 datepicker 除外。
我在哪里搞砸了?当验证失败时,我想将旧值设置为 datepicker。
正如我后来发现的那样,旧值已设置并立即刷新为默认值'2021-01-17'
【问题讨论】: