我正在使用Bootstrap 3 Datepicker。当我选择开始日期时,在结束日期自动填入另一个字段到下一个日期。我只是想不通为什么我得到它。代码在Firefox和Chrome中运行良好,但在Safari控制台中,它给了我一个错误。知道为什么我会得到。
SyntaxError:预期标识符,但找到了' ['代替
守则:
<div class="row">
<div class="col-xs-5 search_date">
<label>{{lang('start_date')}}</label>
<input type='text' name="start_date" id="start_date" value="<?php echo @$start_date; ?>" required=""/>
<span class="text-danger"><?php echo @$error['start_date']; ?></span>
<input style="border:0;" type="text" name="start_time" id="start_time" required="" class="" value="<?php echo @$start_time; ?>" />
<span class="text-danger"><?php echo @$error['start_time']; ?></span>
</div>
<div class="col-xs-2 p-t40">
<img src="{{ asset('images/web/arrow-right.png') }}" class="m-t40">
</div>
<div class="col-xs-5 search_date">
<label>{{lang('end_date')}}</label>
<input type="text" name="end_date" id="end_date" required="" class="" value="<?php echo @$end_date; ?>" />
<span class="text-danger"><?php echo @$error['end_date']; ?></span>
<input style="border:0;" type="text" name="end_time" id="end_time" required="" value="<?php echo @$end_time; ?>" />
<span class="text-danger"><?php echo @$error['end_time']; ?></span>
</div>
</div>
<script>
$(function () {
$('#start_date').datetimepicker({
format: 'DD-MM-YYYY',
minDate: moment().add(1, 'days'),
});
<?php if (isset($start_date)) { ?>
$('#start_date').val('<?php echo @$start_date; ?>');
<?php } ?>
$('#end_date').datetimepicker({
format: 'DD-MM-YYYY',
minDate: moment().add(2, 'days'),
});
<?php if (isset($end_date)) { ?>
$('#end_date').val('<?php echo @$end_date; ?>');
<?php } ?>
$("#start_date").on("dp.change", function (e) {
const[day, month, year] = $('#start_date').val().split("-");
var strt_dt = new Date(year + "-" + month + "-" + day);
var ultimate = strt_dt.setDate(strt_dt.getDate() + 1);
var d = new Date(ultimate);
$('#end_date').data("DateTimePicker").minDate(d);
});
$('#end_time').datetimepicker({
format: 'H:m',
});
$('#start_time').datetimepicker({
format: 'H:m',
});
});
$(document).on('change', '#start_date, #end_date', function () {
$('#end_date').attr('min', $('#start_date').val());
$('#start_date').attr('max', $('#end_date').val());
});
</script>
我只在Safari控制台上遇到另一个问题: SyntaxError:预期令牌&#39;)&#39;
以下是我的以下代码:
<script>
function alertbox(heading = null, meassage = null) {
if (heading != null && meassage != null) {
$('#alert_heading').html(heading);
$('#alert_message').html(meassage);
$('#alert_model').modal('show');
}
}
</script>
答案 0 :(得分:0)
从
改变 function alertbox(heading = null, meassage = null) {
if (heading != null && meassage != null) {
$('#alert_heading').html(heading);
$('#alert_message').html(meassage);
$('#alert_model').modal('show');
}
}
到
function alertbox(heading, meassage)
{
if(heading === undefined)
{
heading = null;
}
if(meassage === undefined)
{
meassage = null;
}
if (heading != null && meassage != null)
{
$('#alert_heading').html(heading);
$('#alert_message').html(meassage);
$('#alert_model').modal('show');
}
}
Safari不允许在函数中进行这样的赋值,
答案 1 :(得分:0)
Safari尚不支持ES2015的默认参数。 parameters
您可以使用以下ES5让这个工作
用下面给出的替换你的js函数来保持这个工作。
function alertbox(heading, meassage)
{
if(heading === undefined)
{
heading = null;
}
if(meassage === undefined)
{
meassage = null;
}
if (heading != null && meassage != null)
{
$('#alert_heading').html(heading);
$('#alert_message').html(meassage);
$('#alert_model').modal('show');
}
}