Bootstrap datetimepicker- Uncaught TypeError:无法读取未定义的属性“getTime”

时间:2017-03-27 09:58:46

标签: jquery twitter-bootstrap datetimepicker bootstrap-datetimepicker

未捕获的TypeError:无法读取未定义的属性“getTime”
您可以找到错误日志here

$('.modal-body').on("focus","#date",function() {
    var date = $('#date').val();
    $('#date').datetimepicker({
        defaultDate: date,
        language: 'zh-CN',
        pickDate: true,
        pickTime: true,
        autoclose: true,
        format: 'yyyy-mm-dd',
        todayBtn: true,
        minView: 2,
        startView: 3,
        pickerPosition: "bottom-left"
    });
);  

插入弹出窗口

$('#edit').click(function(){
    $.ajax({
        url: "{:U('SystemSettingMgt/settingConf')}",
        type: 'post',
        data: {
            'id' : $(this).siblings('input').val(),
            'is_active' : 1,
        },
        success:function(json){
            $('.modal-body').children().empty();
            var str = '';
            switch(json.datatype){
                // yes/false
                case "1":
                    str += '<label>select setting</label>';
                    str += '<input type="hidden" id="id" value="'+json.id+'">';
                    str += '<input type="hidden" id="datatype" value="'+json.datatype+'">';
                    str += '<select name="value" id="value" class="form-control">';
                    if (json.value == 1) {
                        str += '<option value="1" selected>yes</option>';
                        str += '<option value="0"false</option>';
                    }else if(json.value == 0){
                        str += '<option value="1">yes</option>';
                        str += '<option value="0" selected>false</option>';
                    }
                    str += '</select>';
                    $('.modal-body').children().append(str);
                    break;

                // enter string
                case "2":
                    str += '<label>enter setting</label>';
                    str += '<input type="hidden" id="id" value="'+json.id+'">';
                    str += '<input type="hidden" id="datatype" value="'+json.datatype+'">';
                    str += '<input name="value" id="value" class="form-control" value="'+json.value+'">';
                    $('.modal-body').children().append(str);
                    break;

                // enter num
                case "3":
                    str += '<label>select setting</label>';
                    str += '<input type="hidden" id="id" value="'+json.id+'">';
                    str += '<input type="hidden" id="datatype" value="'+json.datatype+'">';
                    str += '<input type="text" id="value" value="'+json.value+'" name="value" class="form-control" placeholder="设定值"  onkeyup="if(! /^\d+$/.test(this.value)){this.placeholder='+'只能整数'+';this.value='+';}">';
                    $('.modal-body').children().append(str);
                    break;

                // select date
                case "4":
                    str += '<label>select setting</label>';
                    str += '<input type="hidden" id="id" value="'+json.id+'">';
                    str += '<input type="hidden" id="datatype" value="'+json.datatype+'">';
                    str += '<input type="text" id="date" name="value" class="form-control date" placeholder="select date" value="'+json.value+'">';
                    $('.modal-body').children().append(str);
                    break;

                // date
                case "5":
                    str += '<label>change setting</label>';
                    str += '<input type="hidden" id="id" value="'+json.id+'">';
                    str += '<input type="hidden" id="datatype" value="'+json.datatype+'">';
                    str += '<input type="text" data-date-format="hh:ii" id="time" name="value" class="form-control date" placeholder="select time" value="'+json.value+'">';
                    $('.modal-body').children().append(str);
                    break;

                // select
                case "6":
                    str += '<label>change setting</label>';
                    str += '<input type="hidden" id="id" value="'+json.id+'">';
                    str += '<input type="hidden" id="datatype" value="'+json.datatype+'">';
                    str += '<select name="datasource"  id="value" class="form-control">';
                    for(i = 0; i < json.datasource.length; i++){
                        str += '<option value="'+i+'">'+json.datasource[i]+'</option>';
                    }
                    str += '</select>';
                    $('.modal-body').children().append(str);
                    break;
               }
         }
    });
    $('#editSetting').modal('show');
});

我猜时间格式是问题所在,但是错误后会给出jQuery值。

2 个答案:

答案 0 :(得分:4)

在bootstrap-datetimepicker.js中是:

getDate: function () {
      var d = this.getUTCDate();
      if (d === null) {
        return null;
      }
      return new Date(d.getTime() + (d.getTimezoneOffset() * 60000));
    },

但是当输入的设定值为例如:12:15则d未定义。您可以在代码中覆盖getUTCDate函数,或者更改为:

d === null || typeof d  ==='undefined'

答案 1 :(得分:0)

  

未捕获的TypeError:无法读取未定义的属性“getTime”

如果未包含jQuery UI插件,则会抛出此错误 确保在项目中的任何其他脚本之前包含它,除了在jQuery插件之后。