우편번호input 질문입니다.
본문
.input_blur {background: url(./img/ex_zipbg.jpg); height:40px;width:59px; border:1px solid #cccccc;}
.input_focus {background: url(./img/ex_zipbgfocused.jpg); color: #000;height:40px;width:59px; border:1px solid #cccccc;}
.input_change {background: url(./img/ex_zipbgfocused.jpg); height:40px;width:59px; border:1px solid #cccccc;}
.inpstyle {background: url(./img/ex_zipbg.jpg); height:40px;width:59px; border:1px solid #cccccc;}
<input onChange="this.className='input_change'" onFocus="this.className='input_focus'" onBlur="if ( this.value == '' ) { this.className='input_blur' }" tabindex="12" type="text" name="ex_zip" value="<?php echo $ex_zip; ?>" id="ex_zip" class="inpstyle input_focus input_blur frm_input" size="7" maxlength="6" required>
<button tabindex="13" type="button" class="btn_frmline" onclick="win_zip('fwrite', 'ex_zip', 'ex_addr1', 'ex_addr2', 'ex_addr3', 'ex_jibeon');">주소 검색</button>
input창에 마우스를 클릭하면 focus 가 되어 우편번호라는 글자가 적힌 이미지가 사라집니다.
input창을 빠져나와 다른 곳을 클릭하면 blur가 적용됩니다. 우편번호라는 글자 이미지가 나타납니다.
질문)우편번호 검색 버튼을 누른 후 주소선택하면 우편번호라는 글자 이미지가 그대로 있습니다.
이 때 focus 된 상태가 되어야하는대 어떻게 고쳐야하죠?
답변 2
문제의 근본 원인은 프로그램에 의해 value 가 change 된 경우에는 onchange 이벤트가 발생하지 않습니다.
/js/common.js 422 Line
of[frm_zip].value = data.zonecode;
방법 1) 간단하게 placeholder 를 사용합니다. (권장)
<input onChange="this.className='input_change'" onFocus="this.className='input_focus'" onBlur="if ( this.value == '' ) { this.className='input_blur' }" tabindex="12" type="text" name="ex_zip" value="" id="ex_zip" class="inpstyle input_focus input_blur frm_input" size="7" maxlength="6" required>
->
<input placeholder="우편번호" tabindex="12" type="text" name="ex_zip" value="" id="ex_zip" class="frm_input" size="7" maxlength="6" required>
or
방법 2) /js/common.js 파일에서 classname 까지 변경해줍니다. (권장 X)
of[frm_zip].value = data.zonecode;
->
of[frm_zip].value = data.zonecode;
of[frm_zip].className = 'input_change';
캐시 갱신을 위해
/extend/version.extend.php 에서 G5_JS_VER 의 버전명 숫자를 갱신해줍니다.
/js/common.js 파일에서
var win_zip = function(frm_name, frm_zip, frm_addr1, frm_addr2, frm_addr3, frm_jibeon) {
이 부분 밑에
of[frm_zip].style.background = "";
of[frm_addr2].focus();
빨간색 부분 추가해 보세요.