0

Uncaught TypeError : 정의되지 않은 "getTime"속성을 읽을 수 없습니다.
오류 로그 here을 찾을 수 있습니다. 부트 스트랩 datetimepicker- Uncaught TypeError : 정의되지 않은 "getTime"속성을 읽을 수 없습니다.

$('.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를 값을 통해 오류가 발생한 후 제공됩니다.

+0

코드 바이올린 – Aslam

답변

0

Uncaught TypeError: Cannot read property "getTime" of undefined

jQuery UI 플러그인을 포함하지 않은 경우이 오류가 발생합니다.
jQuery 플러그인 이후를 제외하고는 프로젝트의 다른 스크립트보다 먼저 스크립트를 포함해야합니다. 부트 스트랩-datetimepicker.js에서

+0

다른 페이지에서는 동일한 코드가 정상입니다. jquery가 충돌 한 것 같지만 거부 된 것 같습니다. –

+2

다른 페이지에서도 동일한 코드가 정상이지만이 페이지에서 jQuery 라이브러리에 대한 jQuery 호출의 계층 구조가 다를 수 있습니다. 따라서 jQuery 라이브러리 가져 오기 순서 때문에 같은 코드가이 페이지에서 실패 할 수 있습니다. – Lahiru

+0

나는 문제를 발견, 문제의 시간 형식, json.value 플러스 이동하지만, 주어진 것입니다, 지금은 시간 형식의 문제를 해결하기 위해 필요 –

1

이다 :

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'