날짜를 확인하면서 캘린더 위젯과 입력 필드를 업데이트하는 코드가 있습니다. 우리는 사용자가 모든 유형의 m-d-y 형식 (m.d.y, m-d-y 등)을 입력 할 수있게하려고합니다. 문제는 YUI 달력 위젯은 m/d/y 형식 만 허용한다는 것입니다. 다른 모든 것은 NaN으로 반환됩니다. 날짜를 형식화하는 데 몇 가지 방법을 시도했지만 작동하는 것으로 보이는 것은 얻을 수 없습니다. 나는 많은 과장된 코드로 이것을 할 수 있기를 바란다. 누구든지 여기에 최선의 접근 방법에 대한 제안이 있습니까? 여기 내 코드 :자바를 사용하는 날짜 형식 지정 옵션
//CALENDAR --------------------------------------------------------------------------------
var initCal = function(calendarContainer){
if(YAHOO.env.getVersion("calendar")){
var txtDate = Dom.get("dateOfLoss");
var myDate = new Date();
var day = myDate.getDate();
var month = myDate.getMonth() +1;
var year = myDate.getFullYear() -1;
var newDate = month + "/" + day + "/" + year;
function handleSelect(type, args, obj){
var dates = args[0];
var date = dates[0];
var year = date[0], month = date[1], day = date[2];
txtDate.value = month + "/" + day + "/" + year;
aCal.hide();
}
function updateCal(){
if (!(txtDate.value.match(/((\d{2})|(\d))\/|\-((\d{2})|(\d))\/|\-((\d{4})|(\d{2}))/))) {
alert("Enter date in mm/dd/yy or mm/dd/yyyy format.");
}
else {
if (txtDate.value != "") {
aCal.select(txtDate.value);
var selectedDates = aCal.getSelectedDates();
if (selectedDates.length > 0) {
var firstDate = selectedDates[0];
aCal.cfg.setProperty("pagedate", (firstDate.getMonth() + 1) + "/" + firstDate.getFullYear());
aCal.render();
}
else {
alert("Date of Loss must be within the past year.");
}
}
}
}
var aCal = new YAHOO.widget.Calendar(null, calendarContainer, {
mindate: newDate,
maxdate: new Date(),
title: "Select Date",
close: true
});
aCal.selectEvent.subscribe(handleSelect, aCal, true);
aCal.render();
Event.addListener("update", "click", updateCal);
Event.addListener(txtDate, "change", function(e){
updateCal();
});
// Listener to show the 1-up Calendar when the button is clicked
// Hide Calendar if we click anywhere in the document other than the calendar
Event.on(document, "click", function(e){
var el = Event.getTarget(e);
if(Dom.hasClass(el, "calendarButton"))
aCal.show();
else if (Dom.hasClass(el, "link-close") || !Dom.isAncestor(calendarContainer, el))
aCal.hide();
});
}
else {
var successHandler = function() {
initCal(calendarContainer);
};
OURPLACE.loadComponent("calendar", successHandler);
}
};
답변이 하나도 없으면 어떻게됩니까? 나는 여전히 그들을 받아 들여야합니까? 내가 알아 낸 바로는 이제 내 자신의 질문에 대답하고있다. – mbastian05