우편번호 검색을 위한 자바스크립트 소스다
epost.go.kr의 우편번호 검색에 사용된 자바스크립트 소스를 이용하여 수정을 했다.
ASP소스와 자바스크립트 소스만 있으면 기본적으로 우편번호 검색은 끝난다
유용하게 사용하길....
/************************************************************************************
' 단위업무명 : 우편번호 검색을 위한 자바스크립트
' 작 성 자 : 가치노을(pobiplus@gmail.com) http://www.newnnow.co.kr
' 작 성 일 : 2011-12-01
' 수 정 자 :
' 수 정 일 :
' 내 용 : epost.go.kr에서 우편번호 검색화면 소스를 차용한것임
' 주의 사항 :
'************************************************************************************/
function eventonblur(img_name){
var keyvalue = document.getElementById("keyword").value;
var gubun = document.getElementById('gubun').value;
if(gubun == "road"){
img_url="/__cmsimg/zipcode/srch_bg.gif";
}
else if(gubun == "dong"){
img_url="/__cmsimg/zipcode/srch_bg2.gif";
}
else if(gubun == "oldpost"){
img_url="/__cmsimg/zipcode/srch_bg3.gif";
}
if((img_name.value == "") && (keyvalue == "")){
img_name.style.background="url("+img_url+") no-repeat 2px 2px";
img_name.style.backgroundColor="#fff";
}
}
function fnInit(val){
// 라디오 버튼 value 값 조건 비교
if(val == "road"){
document.getElementById('notitab3_list').style.display = "";
document.getElementById('notitab4_list').style.display = "";
document.getElementById('notitab5_list').style.display = "none";
document.getElementById('notitab6_list').style.display = "none";
document.getElementById('gubun').value="road";
if(document.getElementById("keyword").value.length==0){
document.getElementById("keyword").style.background="url(/__cmsimg/zipcode/srch_bg.gif) #fff no-repeat 2px 1px";
}
}
else if(val == "dong"){
document.getElementById('notitab3_list').style.display = "none";
document.getElementById('notitab4_list').style.display = "none";
document.getElementById('notitab5_list').style.display = "";
document.getElementById('notitab6_list').style.display = "none";
document.getElementById('gubun').value="dong";
if(document.getElementById("keyword").value.length==0){
document.getElementById("keyword").style.background="url(/__cmsimg/zipcode/srch_bg2.gif) #fff no-repeat 2px 1px";
}
}
else if(val == "oldpost"){
document.getElementById('notitab3_list').style.display = "none";
document.getElementById('notitab4_list').style.display = "none";
document.getElementById('notitab5_list').style.display = "none";
document.getElementById('notitab6_list').style.display = "";
document.getElementById('gubun').value="oldpost";
if(document.getElementById("keyword").value.length==0){
document.getElementById("keyword").style.background="url(/__cmsimg/zipcode/srch_bg3.gif) #fff no-repeat 2px 1px";
}
}
}
function fnGubun(obj){
// 라디오 버튼 value 값 조건 비교
document.getElementById("keyword").value = "";
if(obj.value == "road"){
document.getElementById('notitab3_list').style.display = "";
document.getElementById('notitab4_list').style.display = "";
document.getElementById('notitab5_list').style.display = "none";
document.getElementById('notitab6_list').style.display = "none";
if(document.getElementById("keyword").value.length==0){
document.getElementById("keyword").style.background="url(/__cmsimg/zipcode/srch_bg.gif) #fff no-repeat 2px 1px";
}
}
else if(obj.value == "dong"){
document.getElementById('notitab3_list').style.display = "none";
document.getElementById('notitab4_list').style.display = "none";
document.getElementById('notitab5_list').style.display = "";
document.getElementById('notitab6_list').style.display = "none";
if(document.getElementById("keyword").value.length==0){
document.getElementById("keyword").style.background="url(/__cmsimg/zipcode/srch_bg2.gif) #fff no-repeat 2px 1px";
}
}
else if(obj.value == "oldpost"){
document.getElementById('notitab3_list').style.display = "none";
document.getElementById('notitab4_list').style.display = "none";
document.getElementById('notitab5_list').style.display = "none";
document.getElementById('notitab6_list').style.display = "";
if(document.getElementById("keyword").value.length==0){
document.getElementById("keyword").style.background="url(/__cmsimg/zipcode/srch_bg3.gif) #fff no-repeat 2px 1px";
}
}
}
function fnCheckForm(srcEl)
{
var gubun, keyword,stitle;
keyword = fnCheckstring(srcEl.keyword.value);
stitle = srcEl.keyword.title;
gubun = srcEl.gubun.value;
//alert(gubun);
if(keyword.length == 0){
if (gubun == "road"){
alert("도로명+건물번호를 입력하세요!\n\n검색방법 : 도로명(~로,~길)+건물번호\n- 서울시 중구 소공로 70 \n 예) '소공로(도로명) 70(건물번호)'");
}
else if (gubun == "dong"){
alert("동/읍/면/리/명+지번을 입력하십시오!\n\n검색방법 : 동/읍/면/리명+지번\n- 서울시 중구 충무로1가 21-1 \n 예) '중무로1가(동명) 21-1(지번)'");
}
else{
alert("동/읍/면/리/명을 입력하십시오!\n\n검색방법 : 동/읍/면/리명\n- 서울시 중구 충무로1가 \n 예) '충무로1가(동명) 또는 충무로'");
}
srcEl.keyword.style.backgroundImage="";
srcEl.keyword.focus();
return false;
}else if(keyword.length < 2){
alert("검색어를 2글자이상으로입력하세요!");
srcEl.keyword.style.backgroundImage="";
srcEl.keyword.focus();
return false;
}
if (gubun == "road"){
var str = srcEl.keyword.value.split(" ").join("");
var strlen = str.length;
var strdiv = "";
for(var i = strlen-1; i > -1; i--){
if(IsRoad(str.charAt(i))){
strdiv = i+1;
break;
}
}
srcEl.searchKey.value = str.substring(0,strdiv);
srcEl.MainNo.value = str.substring(strdiv,strlen);
if(srcEl.searchKey.value == "시장북로"){
alert("\"시장북로\"는 지번주소(법정동) 입니다.");
return false;
}
if ((gubun == "road")&&((srcEl.searchKey.value == "")||(srcEl.MainNo.value == ""))) {
alert("도로명+건물번호를 입력하세요!\n\n검색방법 : 도로명(~로,~길)+건물번호\n- 서울시 중구 소공로 70 \n 예) '소공로(도로명) 70(건물번호)'");
return false;
}
var Temp = srcEl.MainNo.value.split("-");
srcEl.MainNo.value = Temp[0];
srcEl.SubNo.value = "";
for (var i = 1; i < Temp.length; i++) {
srcEl.SubNo.value = Temp[i];
break;
}
srcEl.SubNo.value = srcEl.SubNo.value.replace(" ", "");
if (srcEl.SubNo.value.length == 0) {
srcEl.SubNo.value = "";
}
if ( (gubun == "road")&&(!IsNumeric(srcEl.MainNo.value) || !IsNumeric(srcEl.SubNo.value)) ) {
alert("건물번호는 반드시 숫자만 입력하세요!");
return false;
}
else{
srcEl.MainNo.value = escape(srcEl.MainNo.value);
}
}
//2007.11.02 동명 검색 추가 (천우관)
else if (gubun == "dong"){
var str = srcEl.keyword.value.split(" ").join("");
var strlen = str.length;
var strdiv = "";
for(var i = strlen-1; i > -1; i--){
if(IsDong(str.charAt(i))){
strdiv = i+1;
break;
}
}
srcEl.searchKey.value = str.substring(0,strdiv);
srcEl.MainNo.value = str.substring(strdiv,strlen);
if ((gubun == "dong")&&((srcEl.searchKey.value == "")||(srcEl.MainNo.value == ""))) {
alert("동/읍/면/리/명+지번을 입력하십시오!\n\n검색방법 : 동/읍/면/리명+지번\n- 서울시 중구 충무로1가 21-1 \n 예) '충무로1가(동명) 21-1(지번)'");
return false;
}
srcEl.MainNo.value = srcEl.MainNo.value.replace("산", "");
var Temp = srcEl.MainNo.value.split("-");
srcEl.MainNo.value = Temp[0];
srcEl.SubNo.value = "";
for (var i = 1; i < Temp.length; i++) {
srcEl.SubNo.value = Temp[i];
break;
}
srcEl.SubNo.value = srcEl.SubNo.value.replace(" ", "");
if (srcEl.SubNo.value.length == 0) {
srcEl.SubNo.value = "";
}
if ( (gubun == "dong")&&(!IsNumeric(srcEl.MainNo.value) || !IsNumeric(srcEl.SubNo.value)) ) {
alert("번지는 반드시 숫자만 입력하세요!");
return false;
}
else{
srcEl.MainNo.value = escape(srcEl.MainNo.value);
}
}
else if (gubun == "oldpost"){
if(srcEl.keyword.value==""){
alert("검색어를 입력하세요!");
srcEl.keyword.focus();
return false;
}else if(srcEl.keyword.value.length<2){
alert("검색어를 2글자이상으로입력하세요!");
srcEl.keyword.focus();
return false;
}
srcEl.searchKey.value = srcEl.keyword.value;
}
return true;
}
function IsNumeric(sText){
var ValidChars = "0123456789";
var IsNumber=true;
var Char;
for (i = 0; i < sText.length && IsNumber == true; i++) {
Char = sText.charAt(i);
if (ValidChars.indexOf(Char) == -1){
IsNumber = false;
}
}
return IsNumber;
}
function IsRoad(sText){
var ValidChars = "개길도로리";
var IsRoad=true;
if (ValidChars.indexOf(sText) == -1){
IsRoad = false;
}
return IsRoad;
}
function IsDong(sText){
var ValidChars = "읍면동리로가";
var IsDong=true;
if (ValidChars.indexOf(sText) == -1){
IsDong = false;
}
return IsDong;
}
function fnCheckstring(str)
{
var index, len
while(true) {
index = str.indexOf(" ")
if (index == -1) break
len = str.length
str = str.substring(0, index) + str.substring((index+1),len)
}
str = escape(str)
while(true) {
index = str.indexOf("%0D%0A")
if (index == -1) break
len = str.length
str = str.substring(0, index) + str.substring((index+6),len)
}
str = unescape(str)
return str
}
// 우편번호 검색결과 반영
function use_post(zipcode, road_address){
post = zipcode.split("-");
opener.parent.document.getElementById("post1").value = post[0];
opener.parent.document.getElementById("post2").value = post[1];
opener.parent.document.getElementById("addr").value = road_address;
opener.parent.document.getElementById("addr2").focus();
self.close();
}
혹시 소스가 파일로 필요하신분들은 메일(본문 내용을 살피면 있다)이나 댓글로 남겨주면 보내드리겠습니다