자바스크립트 소스
/**
*
* 공통 기본 자바스크립트 함수
*
*/
//------------------------------------------------------------------
// FILE Object를 넘기면 확장자가 이미지(png)인지 체크한다
// 예제) onChange="javascript:chkImg(formName.fileName)"
//-------------------------------------------------------------------
function chkPng(obj) {
var filenm = obj.value;
var attachMysize = 0;
if (filenm!="") {
var ext = filenm.slice(filenm.lastIndexOf(".")+1).toLowerCase();
if (!(ext=="png")) {
alert("이미지파일 중 .png만 업로드 가능합니다.");
obj.value="";
obj.focus();
return false;
}
} else return false;
return true;
}
//------------------------------------------------------------------
// FILE Object를 넘기면 확장자가 이미지(gif, jpg, png)인지 체크한다
// 예제) onChange="javascript:chkImg(formName.fileName)"
//-------------------------------------------------------------------
function chkImg(obj) {
var filenm = obj.value;
var attachMysize = 0;
if (filenm!="") {
var ext = filenm.slice(filenm.lastIndexOf(".")+1).toLowerCase();
if (!(ext=="gif" || ext=="jpg" || ext=="png")) {
alert("이미지파일(.gif, .jpg, .png)만 업로드 가능합니다.");
obj.value="";
obj.focus();
return false;
}
} else return false;
return true;
}
//------------------------------------------------------------------
// FILE Object를 넘기면 확장자가 음성파일인지 체크한다
// 예제) onChange="javascript:chkWav(formName.fileName)"
//-------------------------------------------------------------------
function chkWav(obj) {
var filenm = obj.value;
var attachMysize = 0;
if (filenm!="") {
var ext = filenm.slice(filenm.lastIndexOf(".")+1).toLowerCase();
if (!(ext=="wav" || ext=="mp2" || ext=="mp3")) {
alert("음성파일(.wav, .mp3, .mp3)만 업로드 가능합니다.");
obj.focus();
return false;
}
} else return false;
return true;
}
//------------------------------------------------------------------
// FILE Object를 넘기면 확장자가 동영상파일인지 체크한다
// 예제) onChange="javascript:chkMov(formName.fileName)"
//-------------------------------------------------------------------
function chkMov(obj) {
var filenm = obj.value;
var attachMysize = 0;
if (filenm!="") {
var ext = filenm.slice(filenm.lastIndexOf(".")+1).toLowerCase();
if (!(ext=="avi" || ext=="wmv" || ext=="wma")) {
alert("동영상파일(.avi, .wav, .wma)만 업로드 가능합니다.");
obj.focus();
return false;
}
} else return false;
return true;
}
//------------------------------------------------------------------
// FILE Object를 넘기면 확장자가 Excel파일인지 체크한다
// 예제) onChange="javascript:chkExcel(formName.fileName)"
//-------------------------------------------------------------------
function chkExcel(obj) {
var filenm = obj.value;
var attachMysize = 0;
if (filenm!="") {
var ext = filenm.slice(filenm.lastIndexOf(".")+1).toLowerCase();
if (!(ext=="xls")) {
alert("엑셀파일(.xls)만 업로드 가능합니다.");
obj.focus();
return false;
}
} else return false;
return true;
}
//----------------------------------------------------------------------------
// CheckBox Object를 넘기면 전부체크한다.
// 반드시 checkYn이란 이름을 가진 checkBox가 있어야 하며, 이 CheckBox의
// onClick event에 이 function을 적용한다.
//
// ARGUMENTS
// formName : CheckBox가 있는 form의 name
// obj : CheckBox의 name(form name을 붙여서 넘긴다. ( ex. formName.chboxName )
//
// RETURN
//
// 예제) <input type="checkbox" name="checkYn" onClick="javascript:checkAll(formName, formName.chboxName)">
//---------------------------------------------------------------------------*/
function checkAll(formName, obj){
if (obj) {
if (obj.length) {
for (var i=0 ; i<obj.length ; i++)
if (obj[i].type=='checkbox') obj[i].checked = formName.checkYn.checked;
}
else
if (obj.type=='checkbox') obj.checked = formName.checkYn.checked;
}
}
//----------------------------------------------------------------------------
// CheckBox가 반드시 한 건만 선택되도록 체크
//
// ARGUMENTS
// obj = CheckBox의 name ( form name을 붙여서 넘긴다. 예: formName.chboxName )
//
// RETURN
// boolean
//
// 예제) if( checkValid(formName.chboxName) ) { ...
//---------------------------------------------------------------------------*/
function checkValid(obj) {
var checkedCount = 0;
if (obj) {
if (obj.length) {
for(var i=0 ; i<obj.length ; i++)
if (obj[i].checked) checkedCount++;
if (checkedCount == 0) {
alert('항목을 선택하여 주십시오.');
return false;
} else if (checkedCount > 1){
alert('항목을 하나만 선택하여 주십시오.');
return false;
} else
return true;
} else {
if (!obj.checked) {
alert('항목을 선택하여 주십시오.');
return false;
} else
return true;
}
} else {
alert('선택할 항목이 없습니다.');
return false;
}
}
//----------------------------------------------------------------------------
// CheckBox가 반드시 한 건 이상은 선택되도록 체크
//
// ARGUMENTS
// obj : CheckBox의 name(form name을 붙여서 넘긴다. 예:formName.chboxName)
//
// RETURN
// checkedCount : check된 수
//
// 예제) if( checkValid2(formName.chboxName) ) { ...
//---------------------------------------------------------------------------*/
function checkValid2(obj) {
var checkedCount = 0;
if (obj) {
if (obj.length) {
for (var i=0 ; i<obj.length ; i++)
if (obj[i].checked) checkedCount++;
if (checkedCount == 0) {
alert('항목을 선택하여 주십시오.');
return checkedCount;
} else
return checkedCount;
} else {
if (!obj.checked) {
alert('항목을 선택하여 주십시오.');
return checkedCount;
} else {
checkedCount++;
return checkedCount;
}
}
} else {
alert('선택할 항목이 없습니다.');
return false;
}
}
//----------------------------------------------------------------------------
// 선택된 CheckBox 또는 RadioButton 의 Value를 Return한다.
//
// ARGUMENTS
// obj : CheckBox 또는 RadioButton 의 name(form name을 붙여서 넘긴다. 예:formName.chboxName)
//
// RETURN
// checkedValue : 선택된 항목의 value 값
//
// 예제) var value = getCheckedValue(formName.chboxName);
//---------------------------------------------------------------------------*/
function getCheckedValue(obj) {
var checkedValue='';
if (obj.length) {
for (var i=0 ; i<obj.length ; i++) {
if (obj[i].checked) {
checkedValue = obj[i].value;
return checkedValue;
}
}
} else {
if(obj.checked) {
checkedValue = obj.value;
return checkedValue;
}
}
return checkedValue;
}
//------------------------------------------------------------------------------
// 팝업창을 띄우고 화면의 중앙으로 이동한다.
//
// ARGUMENTS
// theURL : 팝업창의 URL
// winName : 팝업창 이름
// width : 팝업창의 width
// height : 팝업창의 height
// features : 추가기능 (ex. 'scrollbars=no, resizable=yes' )
//
// RETURN
// win : window 객체
//
// 예제) var win = openWindowCenter(url, 'popup_calendar', 180, 195, 'scrollbars=no');
//------------------------------------------------------------------------------
function openWindowCenter(theURL, winName, width, height, features) {
// 화면 중앙의 좌표값 계산
var leftX = screen.width / 2 - width / 2;
var topY = -75 + screen.height / 2 - height / 2;
// 팝업창 크기 설정
var featuresValue = 'width=' + width + ',height=' + height;
featuresValue += ',left=' + leftX + ',top=' + topY;
// 추가 속성 지정
if (features.length > 0)
featuresValue += ',' + features; // + ',resizable=yes';
//창을 open 한다.
var win = window.open(theURL,winName,featuresValue);
win.focus();
return win;
}
//------------------------------------------------------------------------------
// 찾고자 하는 form의 element의 갯수를 return
//
// ARGUMENTS
// formName = form의 name
// eleName = 갯 수를 알고자 하는 element의 Name
//
// RETURN
// element의 갯 수
//---------------------------------------------------------------------------*/
function getEleNum(formName,elementName) {
var elementNum = 0;
if (formName.elements.length) {
for (i=0 ; i<formName.elements.length ; i++) {
if (formName.elements[i].name == elementName)
elementNum++;
}
} else {
elementNum = 1;
}
return elementNum;
}
//------------------------------------------------------------------------------
// 찾고자 하는 form의 element중 선택된 element의 갯수를 return
//
// ARGUMENTS
// formName = form의 name
// eleName = 갯 수를 알고자 하는 element의 Name
//
// RETURN
// element의 갯 수
//---------------------------------------------------------------------------*/
function getCheckedEleNum(formName,elementName) {
var elementNum = 0;
for (i=0 ; i<formName.elements.length ; i++) {
if (formName.elements[i].name == elementName) {
if (formName.elements[i].checked)
elementNum++;
}
}
return elementNum;
}
//------------------------------------------------------------------------------
// 찾고자 하는 form의 element중 선택된 element의 index를 return
//
// ARGUMENTS
// formName = form의 name
// checkBoxName = 체크 된 index를 알고자 하는 체크박스 이름
//
// RETURN
// checked Index의 Array
//---------------------------------------------------------------------------*/
function getCheckedEleIndex(formName,checkBoxName) {
var checkedEleIndex = new Array();
var elementNum = 0;
var j = 0;
for (i=0 ; i<formName.elements.length ; i++) {
if (formName.elements[i].name == checkBoxName) {
if (formName.elements[i].checked) {
checkedEleIndex[elementNum] = j;
elementNum++;
}
j++;
}
}
return checkedEleIndex;
}
//------------------------------------------------------------------------------
// 찾고자 하는 form의 element중 선택된 checkBox와 같은 row에 있는 항목의
// element의 value를 return
//
// ARGUMENTS
// formName = form의 name
// checkBoxName = 체크 된 index를 알고자 하는 체크박스 이름
// elementName = value를 알고 싶은 element의 이름
//
// RETURN
// element의 value Array
//---------------------------------------------------------------------------*/
function getCheckedEleValues(formName,checkBoxName,elementName) {
var checkedEleIndex = getCheckedEleIndex(formName,checkBoxName);
if (checkedEleIndex.length == 0) {
alert('선택된 항목이 없습니다.');
return;
}
var checkedEleValues = new Array();
var elementNum = 0;
var j = 0;
for (i=0 ; i<formName.elements.length ; i++) {
if (formName.elements[i].name == elementName) {
if (j == checkedEleIndex[elementNum]) {
checkedEleValues[elementNum] = formName.elements[i].value;
elementNum++;
}
j++;
}
}
return checkedEleValues;
}
//------------------------------------------------------------------------------
// selectbox 에 option을 추가한다.
//
// ARGUMENTS
// selectName = select의 name (form name까지 붙여준다)
// tmpValue = option의 value 값
// tmpText = option의 text 값
//
// RETURN
//---------------------------------------------------------------------------*/
function addSelectOption(selectName,tmpValue,tmpText) {
if (tmpValue != '') {
if (!selectName.length) i = 0;
else i = selectName.length;
var tmpOption = new Option();
tmpOption.text = tmpText;
tmpOption.value = tmpValue;
selectName.options[i] = tmpOption;
}
}
//------------------------------------------------------------------------------
// selectbox 에서 select된 option을 삭제한다.
//
// ARGUMENTS
// selectName = select의 name(form name까지 붙여준다)
// RETURN
//---------------------------------------------------------------------------*/
function delSelectOption(selectName) {
if (selectName.length) {
var selectedCnt = 0;
for(i=0 ; i<selectName.length ; i++) {
if(selectName.options[i].selected) {
selectName.options[i] = null;
selectedCnt++;
i--;
}
}
if (selectedCnt == 0) return;
} else
return;
}
//------------------------------------------------------------------------------
// selectbox안에 모든 option을 삭제한다.
//
// ARGUMENTS
// selectName = select의 name(form name까지 붙여준다)
// RETURN
//---------------------------------------------------------------------------*/
function allDelSelectOption(selectName) {
if (selectName.length) {
var selectedCnt = 0;
for(i=0 ; i<selectName.length ; i++) {
selectName.options[i] = null;
selectedCnt++;
i--;
}
if (selectedCnt == 0) return;
} else
return;
}
//------------------------------------------------------------------------------
// selectbox 를 전체선택한다.
//
// ARGUMENTS
// selectName = select의 name(form name까지 붙여준다)
//
// RETURN
//---------------------------------------------------------------------------*/
function selectAll(selectName) {
if (selectName.length) {
for (i=0 ; i<selectName.length ; i++)
selectName.options[i].selected = true;
}
}
//------------------------------------------------------------------------------
// subString 한다.
//
// ARGUMENTS
// str = 대상 String
// inx = subString할 길이
//
// RETURN
// result = substring 된 문자열
//---------------------------------------------------------------------------*/
function getSubString(str,inx) {
var result = '';
if (str.length < inx)
result = str;
else
result = str.substring(0,inx);
}
//------------------------------------------------------------------------
// 글자수 제한 체크 (onKeyUp 이벤트)
//
// ARGUMENTS
// len = 제한하려는 Byte 수(한글은 2byes 처리함)
//
// RETURN
//
// 예제) <textarea name="userPswd" cols="60" rows="2" onKeyUp="charNumChk(this, 80);"></textarea>
//
//------------------------------------------------------------------------
function charNumChk(obj, len) {
var str = obj.value;
var nLen = str.length+(escape(str)+"%u").match(/%u/g).length-1;
if ( nLen <= len ) {
return true;
} else {
alert(len + " byte 를 초과하여 입력할 수 없습니다.");
obj.value = charCutBytes(obj.value, len);
obj.focus();
return false;
}
}
//------------------------------------------------------------------------
// 해당 문자열을 지정된 bytes 수 만큼만 잘라낸다.
// (한글과 같은 2 Byte 문자는 지정된 Byte 가 넘을 경우 잘릴수도 있음)
//
// ARGUMENTS
// str = 대상문자열
// len = 잘라낼 Byte 수 (한글은 2byes 처리함)
//
// RETURN
// 처리된 문자열
//
//------------------------------------------------------------------------
function charCutBytes(str, len) {
var byteLength = 0;
var result = '';
for (var inx = 0; inx < str.length; inx++) {
var oneChar = escape(str.charAt(inx));
if ( oneChar.length == 1 ) {
byteLength ++;
} else if (oneChar.indexOf("%u") != -1) {
byteLength += 2;
} else if (oneChar.indexOf("%") != -1) {
byteLength += oneChar.length/3;
}
// bytes 길이를 넘어버리면 마지막 글자는 넣지않고 리턴한다.
if( byteLength > len ) break;
//if( byteLength == len ) break;
result += str.charAt(inx);
}
return result;
}
//------------------------------------------------------------------------
// 중복작업이 이루어질 경우를 대비해 모든 link를 workingNow()로 변경한다.
// 일반적으로 submit 이전에 실행해주면 중복 submit 을 막을 수 있다.
//------------------------------------------------------------------------
function reWorkChk() {
for(i=0 ; i<document.links.length ; i++) {
if (document.links[i].href.indexOf('close') == -1)
document.links[i].href = 'javascript:workingNow();';
}
}
//------------------------------------------------------------------------
// 중복작업 체크 후 모든 링크에 걸릴 메세지
// (reWorkChk 함수에 의존적, 직접호출필요없음)
//------------------------------------------------------------------------
function workingNow() {
alert('현재 작업 진행 중에 다른 작업을 수행하셨습니다.\n진행중인 작업이 완료되었거나 작업이 지연중이니 \n이전 메뉴로 돌아가서 확인하십시오.');
}
//------------------------------------------------------------------------
// 현재 창에 새로운 이름을 붙인다.
//------------------------------------------------------------------------
function newName() {
this.name = this.name+'_new';
}
//------------------------------------------------------------------------
// 현재창을 가운데로 이동시킨다.
//------------------------------------------------------------------------
function moveToCenter() {
if (document.layers) {
var x = screen.width / 2 - outerWidth / 2;
var y = screen.height / 2 - outerHeight / 2;
} else {
var x = screen.width / 2 - document.body.offsetWidth / 2;
var y = -75 + screen.height / 2 - document.body.offsetHeight / 2;
}
window.moveTo(x, y);
}
//------------------------------------------------------------------------
// 창 크기를 바꾸고 가운데로 이동시킨다.
//------------------------------------------------------------------------
function resizeCenter(width, height) {
var leftX = screen.width / 2 - width / 2;
var topY = -75 + screen.height / 2 - height / 2;
window.resizeTo(width, height);
window.moveTo(leftX, topY);
}
//------------------------------------------------------------------------
// 숫자만 입력 가능하도록 이벤트 처리 (onKeyDown 이벤트)
//
// 예제) <input type="text" name="jumin" onKeyDown="onlyNumberInput(this);" style="ime-mode:disabled;">
//------------------------------------------------------------------------
function onlyNumberInput(obj) {
if( ( (event.keyCode<48)||(event.keyCode>57) || event.shiftKey )
&& event.keyCode != 8
&& event.keyCode != 9
&& event.keyCode != 13
&& event.keyCode != 16
&& event.keyCode != 17
&& event.keyCode != 18
&& event.keyCode != 19
&& event.keyCode != 20
&& event.keyCode != 21
&& event.keyCode != 25
&& event.keyCode != 27
&& event.keyCode != 33
&& event.keyCode != 34
&& event.keyCode != 45
&& event.keyCode != 46
&& event.keyCode != 91
&& event.keyCode != 93
&& event.keyCode != 144
&& event.keyCode != 145
&& event.keyCode != 173
&& event.keyCode != 174
&& event.keyCode != 175
&& !( event.keyCode >= 112 && event.keyCode <= 123 )
&& !( event.keyCode >= 96 && event.keyCode <= 105 )
&& !( event.keyCode >= 35 && event.keyCode <= 40 ) ) {
alert("숫자만 입력하세요!");
obj.focus(); //focus추가
event.returnValue=false;
return false;
}
event.returnValue = true;
return true;
}
//----------------------------------------------------------------------------
// 검색폼의 특수문자를 필터링한다. ( #, &, \, ', ", %, _ ) (onKeyDown 이벤트)
//
// 예제) <input type="text" name="cdGrpNm" onKeyDown="chkSrchFormSpecialChar();">
//---------------------------------------------------------------------------*/
function chkSrchFormSpecialChar() {
var kcode = event.keyCode;
var shiftKey= event.shiftKey;
var msg = event.srcElement.value;
// window.status = "키코드 : " + kcode + ", 쉬프트키 : " + shiftKey + ", 값 :" + event.srcElement.value;
if( ( (kcode == 51 || kcode == 53 || kcode == 55 || kcode == 189 || kcode == 222) && shiftKey ) ||
( kcode == 222 && !shiftKey ) ||
( kcode == 220 && !shiftKey ) ) {
alert("특수문자( #, &, \\, ', \", %, _ )는 입력하실 수 없습니다.");
event.returnValue=false;
return false;
}
// 한번 더 check
if ( msg.indexOf("#") != -1 ||
msg.indexOf("&") != -1 ||
msg.indexOf("\\") != -1 ||
msg.indexOf("'") != -1 ||
msg.indexOf('"') != -1 ||
msg.indexOf("%") != -1 ||
msg.indexOf("_") != -1) {
alert("특수문자( #, &, \\, ', \", %, _ )는 입력하실 수 없습니다.");
// event.srcElement.value = msg.substring(0, msg.length-1);
event.srcElement.value = '';
event.returnValue=false;
return false;
}
// 복사해 넣기 방지
if( event.ctrlKey && kcode == 86 ) {
event.returnValue=false;
return false;
}
event.returnValue = true;
return true;
}
//------------------------------------------------------------------------
// 주민등록번호 입력 형식 처리 (onKeyUp 이벤트)
//
// 예제) <input type="text" size="14" type="text" maxLength="14"
// name="jumin" onKeyDown="onlyNumberInput(this);" onKeyUp="ssnFormat(this);">
//------------------------------------------------------------------------
function ssnFormat(obj) {
var str = onlyNum(obj.value);
var leng = str.length;
switch(leng){
case 1 :
case 2 :
case 3 :
case 4 :
case 5 :
case 6 : obj.value = str; break;
case 7 :
case 8 :
case 9 :
case 10 :
case 11 :
case 12 : obj.value = str.substring(0, 6) + "-" + str.substring(6, 13);
break;
case 13 : obj.value = str.substring(0, 6) + "-" + str.substring(6, 13);
if(!isSSN(str.substring(0, 6) + str.substring(6, 13))){obj.value = "";}
break;
}
}
//------------------------------------------------------------------------
// 주민등록번호의 유효성을 검증
//
// ARGUMENTS
// ssn = 대상 주민번호 ( ex. '8010142016147' )
//
// RETURN
// boolean
//---------------------------------------------------------------------------*/
function isSSN(ssn){
var msg = "올바른 주민등록번호가 아닙니다.";
if( ssn.length == 13 ) {
var str_jumin1 = ssn.substring(0, 6);
var str_jumin2 = ssn.substring(6);
var checkImg='';
var i3=0
for (var i=0;i<str_jumin1.length;i++) {
var ch1 = str_jumin1.substring(i, i+1);
if(ch1<'0' || ch1>'9') { i3 = i3 + 1; }
}
if ( (str_jumin1 == '') || ( i3 != 0 ) ) {
alert(msg);
return false;
}
var i4=0
for (var i=0;i<str_jumin2.length;i++) {
var ch1 = str_jumin2.substring(i, i+1);
if (ch1<'0' || ch1>'9') { i4=i4+1 }
}
if ( (str_jumin2 == '') || ( i4 != 0 ) ) {
alert(msg);
return false;
}
if(str_jumin1.substring(0,1) < 4) {
alert(msg);
return false;
}
if(str_jumin2.substring(0,1) > 2) {
alert(msg);
return false;
}
if((str_jumin1.length > 7) || (str_jumin2.length > 8)) {
alert(msg);
return false;
}
if ((str_jumin1 == '72') || ( str_jumin2 == '18')) {
alert(msg);
return false;
}
var f1=str_jumin1.substring(0,1)
var f2=str_jumin1.substring(1,2)
var f3=str_jumin1.substring(2,3)
var f4=str_jumin1.substring(3,4)
var f5=str_jumin1.substring(4,5)
var f6=str_jumin1.substring(5,6)
var hap=f1*2+f2*3+f3*4+f4*5+f5*6+f6*7
var l1=str_jumin2.substring(0,1)
var l2=str_jumin2.substring(1,2)
var l3=str_jumin2.substring(2,3)
var l4=str_jumin2.substring(3,4)
var l5=str_jumin2.substring(4,5)
var l6=str_jumin2.substring(5,6)
var l7=str_jumin2.substring(6,7)
hap=hap+l1*8+l2*9+l3*2+l4*3+l5*4+l6*5
hap=hap%11
hap=11-hap
hap=hap%10
if (hap != l7 ) {
alert(msg);
return false;
}
return true;
}
alert(msg);
return false;
}
//------------------------------------------------------------------------
// 사업자등록번호가 정확한지 확인한다.
//
// ARGUMENTS
// iSaupNo : 사업자등록번호 ( 'XXXXXXXXXX' 10자리)
//
// RETURN
// boolean
//---------------------------------------------------------------------------*/
function isSaupNO(iSaupNo) {
if (!isNumber(iSaupNo)){
alert("사업자등록번호는 반드시 숫자로 구성되어야 합니다.");
return false;
}
else if ( iSaupNo.length != 10 ) {
alert("사업자등록번호는 10자리 입니다.");
return false;
}
var arr_saup = iSaupNo.split("");
var wtArray = new Array(1,3,7,1,3,7,1,3,5);
var iSaup_9 = 0;
var iSum_saup = 0;
var iCheck_digit = 0;
//1~8자리까지 가중치를 곱하여 모두 더한다.
for (i = 0; i < 8; i++){
iSum_saup += eval(arr_saup[i]) * eval(wtArray[i]);
}
iSum_saup = iSum_saup % 10;
//9번째 자리 숫자에 5를 곱한다.
iSaup_9 = eval(arr_saup[8]) * 5;
//5를 곱한 값을 10으로 나누어 몫과 나머지를 각각 1~8합계에 더한다.
iSum_saup += Math.floor(iSaup_9 / 10) + iSaup_9 % 10;
//결과 값을 10에서 뺀다.
iCheck_digit = 10 - (iSum_saup % 10);
//계산 값을 10으로 나눈 나머지를 구한다. (Check Digit)
iCheck_digit = iCheck_digit % 10;
if (iCheck_digit != arr_saup[9]) {
alert("사업자등록번호가 정확하지 않습니다.\n 다시 확인하신후 입력하십시오.");
return false;
}
return true;
}
//------------------------------------------------------------------------
// 법인번호 입력 형식 처리 (onKeyUp 이벤트)
//
// 예제) <input type="text" size="14" type="text" maxLength="14"
// name="bubinno" onKeyDown="onlyNumberInput();" onKeyUp="bubinFormat(this);">
//------------------------------------------------------------------------
function bubinFormat(obj) {
var str = onlyNum(obj.value);
var leng = str.length;
switch(leng){
case 1 :
case 2 :
case 3 :
case 4 :
case 5 :
case 6 : obj.value = str; break;
case 7 :
case 8 :
case 9 :
case 10 :
case 11 :
case 12 :
case 13 : obj.value = str.substring(0, 6) + "-" + str.substring(6, 13);
}
}
//------------------------------------------------------------------------
// 사업자등록번호 입력 형식 처리 (onKeyUp 이벤트)
//
// 예제) <input type="text" size="12" type="text" maxLength="12"
// name="saupno" onKeyDown="onlyNumberInput();" onKeyUp="saupnoFormat(this);">
//------------------------------------------------------------------------
function saupnoFormat(obj) {
var str = onlyNum(obj.value);
var leng = str.length;
switch(leng) {
case 1 :
case 2 :
case 3 :obj.value = str; break;
case 4 :
case 5 :obj.value = str.substring(0, 3) + "-" + str.substring(3, 5); break;
case 6 :
case 7 :
case 8 :
case 9 :obj.value = str.substring(0, 3) + "-" + str.substring(3, 5) + "-" + str.substring(5, 10);break;
default :break;
}
}
//------------------------------------------------------------------------
// 입력값이 숫자인지를 확인한다.
//
// ARGUMENTS
// sVal : 입력값 문자열
//
// RETURN
// boolean
//---------------------------------------------------------------------------*/
function isNumber(sVal){
if(sVal.length < 1){
return false;
}
for(i=0; i<sVal.length; i++) {
iBit = parseInt(sVal.substring(i,i+1));
if(('0' < iBit) || ('9' > iBit)) {
;
}
else {
return false;
}
}
return true;
}
//------------------------------------------------------------------------
// 입력된 문자열에서 숫자만 추출하여 리턴
//
// ARGUMENTS
// val : 숫자 추출 대상 문자열
//
// RETURN
// result : 처리된 문자열
//---------------------------------------------------------------------------*/
function onlyNum(val) {
var num = val;
var result = "";
for (var i = 0; i < num.length; i ++) {
if (num.charAt(i) >= 0 && num.charAt(i) <= 9)
result = result + num.charAt(i);
else
continue;
}
return result;
}
//------------------------------------------------------------------------
// 우편번호 찾기 팝업창 오픈
//
// ARGUMENTS
// post1Obj : 우편번호 앞자리 오브젝트
// post2Obj : 우편번호 뒷자리 오브젝트
// addrObj : 주소 오브젝트
//
//---------------------------------------------------------------------------*/
function callPost(post1Obj, post2Obj, addr1Obj, addr2Obj) {
var url = "/CMM04_A.do?method=readList&post1=" + post1Obj + "&post2=" + post2Obj + "&addr1=" + addr1Obj + "&addr2=" + addr2Obj;
openWindowCenter(url, 'STARUCC', 600, 600, 'scrollbars=yes,resizable=no')
}
//------------------------------------------------------------------------
// 유관기관검색 팝업창 오픈
//
// ARGUMENTS none
//
//---------------------------------------------------------------------------*/
function callOrg() {
var url = "/CAL/CAL04_A.do?method=readOrgList";
openWindowCenter(url, 'CMNS', 685, 450, 'scrollbars=yes,resizable=no')
}
//------------------------------------------------------------------------
// CM 팝업창 오픈
//
// ARGUMENTS
// formNm = 폼이름
//
//---------------------------------------------------------------------------*/
function callCm(formNm) {
var url = "/INF/INF04_A.do?method=readCmList"+"&formNm="+formNm;
openWindowCenter(url, 'CMNS', 685, 450, 'scrollbars=yes,resizable=no')
}
//------------------------------------------------------------------------
// 콜센터 상담원 팝업창 오픈
//
// ARGUMENTS
//
//---------------------------------------------------------------------------*/
function callCall() {
var url = "/CAL/CAL05_A.do?method=readCallList";
openWindowCenter(url, 'CMNS', 685, 450, 'scrollbars=yes,resizable=no')
}
//------------------------------------------------------------------------
// 연구원 팝업창 오픈
//
// ARGUMENTS none
//
//---------------------------------------------------------------------------*/
function callResearch() {
var url = "/INF/INF08_A.do?method=readResearchList";
openWindowCenter(url, 'CMNS', 685, 450, 'scrollbars=yes,resizable=no')
}
//------------------------------------------------------------------------------
// checkbox 를 전체선택 또는 해제한다.
//
// ARGUMENTS
// obj1 = 전체 선택여부 obj1이 checked이면 obj2를 모두 checked하고, 그렇지 않다면 모두 false한다. form1.chk = checkbox의 name에 (form name까지 붙여준다)
// obj2 = form1.chk = checkbox의 name에 (form name까지 붙여준다)
//
// RETURN
//---------------------------------------------------------------------------*/
function allCheckBox(obj1, obj2){
if(obj1.checked){
if(obj2){
if(obj2.length > 1){
for(var i=0;i<obj2.length;i++){
if(obj2[i].disabled == false){
obj2[i].checked = true;
}
}
}else{
if(obj2.disabled == false){
obj2.checked = true;
}
}
}
}else{
if(obj2){
if(obj2.length > 1){
for(var i=0;i<obj2.length;i++){
obj2[i].checked = false;
}
}else{
obj2.checked = false;
}
}
}
}
/* =============================================================
Function : 삭제여부를 물어 본후 확인을 누르면 진행 시키는script
Return : true, false
Usage :
================================================================= */
function delConfirm(){
return confirm ("삭제하시겠습니까?");
}
/* =============================================================
Function : 승인여부를 물어 본후 확인을 누르면 진행 시키는script
Return : true, false
Usage :
================================================================= */
function admissionConfirm(){
return confirm ("승인하시겠습니까?");
}
/* =============================================================
Function : 반려여부를 물어 본후 확인을 누르면 진행 시키는script
Return : true, false
Usage :
================================================================= */
function rejectConfirm(){
return confirm ("반려하시겠습니까?");
}
/* =============================================================
Function : 탈퇴여부를 물어 본후 확인을 누르면 진행 시키는script
Return : true, false
Usage :
================================================================= */
function secedeConfirm(){
return confirm ("탈퇴하시겠습니까?");
}
/* =============================================================
Function : 저장여부를 물어 본후 확인을 누르면 진행 시키는script
Return : true, false
Usage :
================================================================= */
function saveConfirm(){
return confirm ("저장하시겠습니까?");
}
/* =============================================================
Function : 반납여부를 물어 본후 확인을 누르면 진행 시키는script
Return : true, false
Usage :
================================================================= */
function retConfirm(){
return confirm ("반납하시겠습니까?");
}
/* =============================================================
Function : 파기여부를 물어 본후 확인을 누르면 진행 시키는script
Return : true, false
Usage :
================================================================= */
function destConfirm(){
return confirm ("파기하시겠습니까?");
}
/* =============================================================
Function : 복원여부를 물어 본후 확인을 누르면 진행 시키는script
Return : true, false
Usage :
================================================================= */
function restoreConfirm(){
return confirm ("복원하시겠습니까?");
}
//------------------------------------------------------------------------
// 메뉴이동
//------------------------------------------------------------------------
function goMenu(url) {
document.location.href = url;
}
//------------------------------------------------------------------------
// 주민등록번호 중복검사
//
// ARGUMENTS
// ssn1Obj : 주민번호 앞자리 Object
// ssn2Obj : 주민번호 뒷자리 Object
// ssn1ObjNm : 주민번호앞자리 이름
// ssn2ObjNm : 주민번호뒷자리 이름
// ssnFnObjNm : 주민번호 체크여부 이름
// formNm : 폼이름
//
//---------------------------------------------------------------------------*/
function goSsn(ssn1Obj, ssn2Obj, ssnFnObj, ssn1ObjNm, ssn2ObjNm, ssnFnObjNm, formNm){
if(!isSSN((ssn1Obj.value + ssn2Obj.value))){
ssn1Obj.value = "";
ssn2Obj.value = "";
ssnFnObj.value ="F";
return;
}else {
var url = "/INF/INF031_A.do?method=ssnFind&ssn1="+ssn1Obj.value+"&ssn2="+ssn2Obj.value+"&ssn1Nm="+ssn1ObjNm+"&ssn2Nm="+ssn2ObjNm+"&ssnFnNm="+ssnFnObjNm+"&formNm="+formNm;
openWindowCenter(url, 'CMNS', 442, 198, 'scrollbars=yes,resizable=no')
}
}
//------------------------------------------------------------------------
// Clinet 주민등록번호 중복검사
//
// ARGUMENTS
// ssn1Obj : 주민번호 앞자리 Object
// ssn2Obj : 주민번호 뒷자리 Object
// ssn1ObjNm : 주민번호앞자리 이름
// ssn2ObjNm : 주민번호뒷자리 이름
// ssnFnObjNm : 주민번호 체크여부 이름
// formNm : 폼이름
//
//---------------------------------------------------------------------------*/
function goClientSsn(ssn1Obj, ssn2Obj, ssnFnObj, ssn1ObjNm, ssn2ObjNm, ssnFnObjNm, formNm){
if(!isSSN((ssn1Obj.value + ssn2Obj.value))){
ssn1Obj.value = "";
ssn2Obj.value = "";
ssnFnObj.value ="F";
return;
}else {
var url = "/INF/INF031_A.do?method=ssnClientFind&ssn1="+ssn1Obj.value+"&ssn2="+ssn2Obj.value+"&ssn1Nm="+ssn1ObjNm+"&ssn2Nm="+ssn2ObjNm+"&ssnFnNm="+ssnFnObjNm+"&formNm="+formNm;
openWindowCenter(url, 'CMNS', 442, 198, 'scrollbars=yes,resizable=no')
}
}
//------------------------------------------------------------------------
// 아이디찾기 주의사항 * 아래의 사항을 꼭 읽어볼것...
//popup용 폼에 layer은 아래와 같다.
//popup용 폼선언은 <form name=<%=formNm%> method="post" action="">
//hidden객체는 <input type="hidden" name="formNm" value="<%=formNm%>">
//<input type="hidden" name="idNm" value="<%=idNm%>">
// 폼객체는 <alice:idfind formNm="<%=formNm%>" idNm="<%=idNm%>"/>
//parent객체에 idFn 객체값을 설정하면서 "F"라는 갑을 넣어준다. 아이디중복검사를 성공적으로 마치면 "T"라고 설정됩니다.
//parent객체는 <alice:idfind formNm="parent폼이름" idNm="parent폼의 ID객체이름 "/>
// ARGUMENTS
// idObj : 주민번호 앞자리 Object
// idObjNm : 주민번호 뒷자리 Object
// formNm : 폼이름
//
//---------------------------------------------------------------------------*/
function findID(idObj, idObjNm, formNm){
if(idObj.value == ""){
alert("아이디를 입력하여 주세요.");
idObj.focus();
return;
}else{
var retVal = checkSpace( idObj.value );
if( retVal != "") {
alert("아이디는 빈공간 없이 연속된 영문 소문자와 숫자만 사용할 수 있습니다.");
return;
}
if(idObj.value.length < 6 || idObj.value.length > 20){
alert("아이디는 영문자 숫자 조합 6자리이상 20자리 미만으로 입력하여 주세요.");
idObj.focus();
return;
}
//아이디의 첫번째 자리는 영문자여야함.
if(isEnglish(idObj.value.substring(0,1)) == false){
alert("아이디의 첫번째자리는 영문자로 입력하셔야 합니다.");
idObj.value = "";
idObj.focus();
return;
}
//아이디는 영문자또는 숫자로 되어야있어야함.
if(!isAlphaNum(idObj)){
alert("아이디는 영문자 숫자 조합 6자리이상 20자리 미만으로 입력하여 주세요.");
idObj.focus();
return;
}
//아이디는 숫자로만 입력할 수 없음.
if(isNumber(idObj) == true){
alert("아이디는 숫자로만 입력하실 수 없습니다.");
idObj.value = "";
idObj.focus();
return;
}else{
var url = "/MEM/MEM02_A.do?method=findIdReady&userId="+idObj.value+"&idNm="+idObjNm+"&formNm="+formNm;
openWindowCenter(url, '아이디찾기', 350, 195, 'scrollbars=no');
}
}
}
//------------------------------------------------------------------------
// 유관기관 검색 팝업
//
//---------------------------------------------------------------------------*/
function callOrgMem() {
var url = "/MEM/MEM05_A.do?method=readList";
openWindowCenter(url, 'CMIS', 660, 450, 'scrollbars=yes,resizable=no')
}
//------------------------------------------------------------------------
// Client 검색 팝업
//
//---------------------------------------------------------------------------*/
function callClient() {
var url = "/CMR/CMR05_A.do?method=readClientList";
openWindowCenter(url, 'CMIS', 760, 620, 'scrollbars=yes,resizable=no')
}
//------------------------------------------------------------------------
// Base64 Encoding
//
// ARGUMENTS
// val : 인코딩 대상 문자열
//
// RETURN
// result : 처리된 문자열
//---------------------------------------------------------------------------*/
function encode64(input) {
var output = "";
var chr1, chr2, chr3;
var enc1, enc2, enc3, enc4;
var i = 0;
do {
chr1 = input.charCodeAt(i++);
chr2 = input.charCodeAt(i++);
chr3 = input.charCodeAt(i++);
enc1 = chr1 >> 2;
enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
enc4 = chr3 & 63;
if (isNaN(chr2)) {
enc3 = enc4 = 64;
} else if (isNaN(chr3)) {
enc4 = 64;
}
output = output + keyStr.charAt(enc1) + keyStr.charAt(enc2) +
keyStr.charAt(enc3) + keyStr.charAt(enc4);
} while (i < input.length);
return output;
}
//------------------------------------------------------------------------
// U-Learning 강좌 보기
//
//---------------------------------------------------------------------------*/
function viewLecList(url) {
openWindowCenter(url, 'CMIS', 760, 620, 'scrollbars=yes,resizable=no')
}
//------------------------------------------------------------------------
// 주민번호 중복검사 초기화
//
//---------------------------------------------------------------------------*/
function ssnFnChk(form) {
if(form.ssnFn) form.ssnFn.value ="F";
}
//------------------------------------------------------------------------
// 아이디 중복검사 초기화
//
//---------------------------------------------------------------------------*/
function idFnChk(form) {
if(form.idFn) form.idFn.value ="F";
}
//------------------------------------------------------------------------
// 패스워드 유효성 여부 체크
//
//---------------------------------------------------------------------------*/
function validPWD( str )
{
var cnt=0;
if( str == ""){
alert("비밀번호를 입력하세요.");
return 0;
}
/* check whether input value is included space or not */
var retVal = checkSpace( str );
if( retVal != "") {
alert("비밀번호는 빈공간 없이 연속된 영문 소문자와 숫자만 사용할 수 있습니다.");
return 0;
}
for( var i=0; i < str.length; ++i)
{
if( str.charAt(0) == str.substring( i, i+1 ) ) ++cnt;
}
if( cnt == str.length ) {
alert("보안상의 이유로 한 문자로 연속된 비밀번호는 허용하지 않습니다.");
return 0;
}
/* limitLength */
//var isPW = /^[a-z0-9_~`!@\\#\$%\^&\*()-\+=\|\[\]\{\};:'"<,>.?/]{6,12}$/;
var isPW = /^[a-z0-9]{6,20}$/;
if( !isPW.test(str) ) {
alert("비밀번호는 6~20자의 영문 소문자와 숫자만 사용할 수 있습니다.");
return 0;
}
return 1;
}
//------------------------------------------------------------------------
// 비밀번호 영문자 숫자혼용 유효성 여부 체크
//
//---------------------------------------------------------------------------*/
function isValidPwd1(obj) {
var cnt1 = 0;
var cnt2 = 0;
var chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
if(containsCharsOnly(obj, chars) == false) cnt1 = 1;
chars = "abcdefghijklmnopqrstuvwxyz";
if(containsCharsOnly(obj, chars) == false) cnt1 = 1;
chars = "0123456789";
if(containsCharsOnly(obj, chars) == false) cnt2 = 1;
return cnt1+cnt2;
}
//------------------------------------------------------------------------
// 패밀리 사이트로 이동
//
//---------------------------------------------------------------------------*/
function goFamilySite(arg) {
if (arg != "")
window.open(arg);
}
// 로그아웃 체크 이벤트
function logout(){
if(confirm('로그아웃하시겠습니까?')) {
document.location.href="/MNN01_A.do?method=logout";
}
}