2015-01-03 6 views
-5

http://jsfiddle.net/58gw8sr7/함수가 onblur에 정의되지 않았습니다?

내 HTML

<input type="datetime-local" onblur="formatDate(this.value)" /> 

내 기능

function formatDate(date) { 
.. 
.. 
} 
+0

귀하의 바이올린로드합니다. 또한 단락에는 value 속성이 없으므로 대신 innerHTML을 사용하십시오. – j08691

+2

'formatDate'는'load' 이벤트 핸들러에 정의되어 있으므로 전역이 아닙니다. 그러나 인라인 이벤트 처리기는 전역 함수 만 호출 할 수 있습니다. 그래서 인라인 이벤트 핸들러를 제거하고'addEventListener'를 사용하십시오 – Oriol

+2

이것은 정확한 복제입니다 ... http://stackoverflow.com/questions/27751096/formatting-date-value-in-javascript 그리고 http : // stackoverflow. com/questions/27751236/datetime-local-return-nothing-with-onblur-function 같은 사람인지 확실하지 않지만 오늘은이 정확한 질문의 3 번째이며 모두 지난 2 시간 이내입니다 – ctwheels

답변

1

나는 아직도 그러나, 나는 이것이 당신이 찾고있는 무엇을 믿고, 나는 당신의 질문 아래에 만들어진 코멘트에 의해 서 ...

jsfiddle

코드는 datetime-local 입력 유형에 대한 브라우저의 지원을 고려하여 이에 따라 출력을 설정합니다.

Formatting date value in javascript의 형식은 "03/02/1991 12:01 AM"이고 브라우저가 datetime-local 입력 유형을 지원하는 경우 출력은이 링크의 다른 질문 게시에 명시된 출력이됩니다. 그에 따라 날짜와 시간을 설정하십시오. 아는 한, datetime-local의 형식을 위에 지정된 형식으로 변경할 수 없습니다. 위에 지정된 형식을 얻으려면이 입력 유형을 지원하는 브라우저에서 숨겨진 입력 요소를 만들고 해당 값을 처리를 위해 원하는 출력으로 설정하면됩니다 (이것이 의도라고 가정 할 때). 창로드 이벤트에

var support = false; 
 
var input = document.createElement('input'); 
 
input.setAttribute('type', "datetime-local"); 
 
if (input.type !== 'text') { 
 
    support = true; 
 
} 
 

 
$("#datetime").onblur = setDateTime(); 
 

 
function setDateTime() { 
 
    var nDate = new Date(); 
 
    var string; 
 
    var date = nDate.getDate(); 
 
    var month = nDate.getMonth() + 1; 
 
    var year = nDate.getFullYear(); 
 
    var hour = nDate.getHours(); 
 
    var minute = nDate.getMinutes(); 
 
    var second = nDate.getSeconds(); 
 
    var millisecond = nDate.getMilliseconds(); 
 
    var ampm = "AM"; 
 

 
    if (date < 10) { 
 
    date = "0" + date.toString(); 
 
    } 
 
    if (month < 10) { 
 
    month = "0" + month.toString(); 
 
    } 
 
    if (support === false) { 
 
    if (hour === 0) { 
 
     hour = 12; 
 
    } 
 
    if (hour > 12) { 
 
     hour -= 12; 
 
     ampm = "PM"; 
 
    } 
 
    } 
 
    if (hour < 10) { 
 
    hour = "0" + hour.toString(); 
 
    } 
 
    if (minute < 10) { 
 
    minute = "0" + minute.toString(); 
 
    } 
 
    if (support === true) { 
 
    string = year + "-" + month + "-" + date + "T" + hour + ":" + minute + ":" + second; 
 
    } else { 
 
    string = date + "/" + month + "/" + year + " " + hour + ":" + minute + " " + ampm; 
 
    } 
 
    $("#datetime").val(string); 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input type="datetime-local" id="datetime" />

관련 문제