2014-11-04 4 views
0

Datetime의 시간 (HH : mm) 만 채우고 싶습니다. 나는 몇 가지 시도를했지만 계속 "Uncaught TypeError : undefined가 함수가 아닙니다." My ajax GET 호출이 정상적으로 작동합니다.Javascript Datetime 시간에만 "Uncaught TypeError : undefined가 함수가 아닙니다."

var id = 0; 
var URL = "http://localhost:58510/api/requests/"; 

onload = function() { 
    showRequestDetails(); 

}; 

function showRequestDetails() { 
    var query = window.location.search.substring(1); 
    var value = query.split("="); 
    id = value[1]; 

    jQuery.support.cors = true; 
    $.ajax({ 
     url: URL + id, 
     type: 'GET', 
     dataType: 'json', 
     success: function(data, textStatus, xhr) { 
      $("#ddArr_txt").val(dateToTime(data.departure_arrivaltime)); 
     }, 
     error: function(xhr, textStatus, errorThrown) { 
      console.log('Request by ID failed.'); 
     } 
    }); 

}; 

function dateToTime(d) { 
    if (d != null) { 
     var timeOnly = (d.getHours() + ":" + d.getMinutes()); 
     return timeOnly; 
    } 
}; 

GET 응답 예 :

<Request> 
<ID>2</ID> 
<departure_arrivaltime>2014-10-29T12:00:00</departure_arrivaltime> 
</Request> 

어떻게 입력 필드에 시간 만받을 수 있나요?

+2

어떤 코드 줄에서 오류가 발생합니까? –

+2

콘솔에'data.departure_arrivaltime'을 로깅 해 봅시다. 그것에 무엇이 있습니까? – vaso123

답변

0

.ajax() 전화에서 dataTypejson임을 나타내면 XML을 얻습니다. 따라서 data으로 역 직렬화 할 수있는 JSON 문자열이 필요하기 때문에 성공 콜백 내의 data은 예상대로 채워지지 않습니다.

1

나는 당신의 data.departure_arrivaltimegetHours 또는 getMinutes 호출하기 전에 날짜로 변환하려고 문자열 생각 -이 방법으로 코드를 변경

var d = new Date(data.departure_arrivaltime); 
+0

아마 이것이라고 생각합니다. – Pointy

0

시도를 :

$("#ddArr_txt").val(dateToTime(new Date(data.departure_arrivaltime))); 

문제는 당신이 Date 객체 대신 문자열로 작업하고 있다는 것을 의미합니다.

관련 문제