关于safari的Jquery问题

时间:2018-03-08 10:56:49

标签: php jquery

我正在使用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>

2 个答案:

答案 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');
    }
 }