|
|
|
@ -728,20 +728,39 @@ class FormFields {
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
$.datepicker.setDefaults({
|
|
|
|
|
dateFormat:"yy-mm-dd",
|
|
|
|
|
yearSuffix:"년",
|
|
|
|
|
monthNames:["1월", "2월", "3월", "4월", "5월", "6월", "7월", "8월", "9월", "10월", "11월", "12월"],
|
|
|
|
|
dayNames:["일요일", "월요일", "화요일", "수요일", "목요일", "금요일", "토요일"],
|
|
|
|
|
dayNamesMin:["일", "월", "화", "수", "목", "금", "토"],
|
|
|
|
|
showMonthAfterYear:true,
|
|
|
|
|
showOtherMonths:true,
|
|
|
|
|
selectOtherMonths:true,
|
|
|
|
|
nextText:"다음 달",
|
|
|
|
|
prevText:"이전 달"
|
|
|
|
|
});
|
|
|
|
|
*/
|
|
|
|
|
$.fn.datePicker = function(selector) {
|
|
|
|
|
return this.each(function() {
|
|
|
|
|
$(this)
|
|
|
|
|
.datepicker()
|
|
|
|
|
.attr("maxlength", "10")
|
|
|
|
|
.on("input",function(e) {
|
|
|
|
|
if (this.value.length <= 0
|
|
|
|
|
|| this.value.length != this.selectionStart
|
|
|
|
|
)
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
|
|
var value = this.value.replaceAll("-","");
|
|
|
|
|
if (value.length > 7) {
|
|
|
|
|
this.value = value.substring(0,4)+"-"+value.substring(4,6)+"-"+value.substring(6);
|
|
|
|
|
} else if (value.length > 5) {
|
|
|
|
|
this.value = value.substring(0,4)+"-"+value.substring(4);
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
.on("paste", function(e) {
|
|
|
|
|
var value = e.originalEvent.clipboardData.getData('text');
|
|
|
|
|
if (value.length == 8)
|
|
|
|
|
this.value = value.substring(0,4)+"-"+value.substring(4,6)+"-"+value.substring(6);
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
var calendarIcon = $(this).next("button.bx-calendar");
|
|
|
|
|
if (calendarIcon.length > 0) {
|
|
|
|
|
$(calendarIcon).on("click", function() {
|
|
|
|
|
$(this).prev().focus();
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @param fromSource 시작값을 갖는 input의 selector
|
|
|
|
|
* @param toSource 종료값을 갖는 input의 selector
|
|
|
|
@ -767,3 +786,63 @@ function inputsInRange(fromSource, toSource) {
|
|
|
|
|
function ignore() {
|
|
|
|
|
console.log.apply(console, arguments);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function fileInput(conf) {
|
|
|
|
|
conf = conf || {};
|
|
|
|
|
var name = conf.name || "upload",
|
|
|
|
|
tag = "<input type='file' name='{name}'{multiple}{accept} style='display:none;'>"
|
|
|
|
|
.replace(/{name}/, name)
|
|
|
|
|
.replace(/{multiple}/, conf.multiple ? " multiple" : "")
|
|
|
|
|
.replace(/{accept}/, conf.accept ? " accept='" + conf.accept + "'" : ""),
|
|
|
|
|
obj = {
|
|
|
|
|
name:name,
|
|
|
|
|
input:null,
|
|
|
|
|
files:[],
|
|
|
|
|
|
|
|
|
|
select:function(onSelect) {
|
|
|
|
|
if (!obj.input) {
|
|
|
|
|
var input = obj.input = $(tag);
|
|
|
|
|
$("body").append(input);
|
|
|
|
|
input.change(function() {
|
|
|
|
|
var files = $(this).get(0).files,
|
|
|
|
|
length = files.length,
|
|
|
|
|
selected = [];
|
|
|
|
|
for (var i = 0; i < length; ++i) {
|
|
|
|
|
var file = files[i];
|
|
|
|
|
file.id = name + (obj.files.length);
|
|
|
|
|
selected.push(file);
|
|
|
|
|
obj.files.push(file);
|
|
|
|
|
}
|
|
|
|
|
onSelect(selected);
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
obj.input.click();
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
getFiles:function() {
|
|
|
|
|
return obj.files;
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
remove:function(id) {
|
|
|
|
|
if (!id) return;
|
|
|
|
|
|
|
|
|
|
var files = obj.files;
|
|
|
|
|
for (var i = 0; i < files.length; ++i) {
|
|
|
|
|
var file = files[i];
|
|
|
|
|
if (id == file.id) {
|
|
|
|
|
files.splice(i, 1);
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
clear:function() {
|
|
|
|
|
if (obj.input)
|
|
|
|
|
$(obj.input).remove();
|
|
|
|
|
obj.input = null;
|
|
|
|
|
obj.files.forEach(function(file) {delete file;});
|
|
|
|
|
obj.files = [];
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
return obj;
|
|
|
|
|
}
|
|
|
|
|