보통 주민등록번호, 전화번호등을 고객으로부터 입력받을 때 입력 편의성을 위하여 특정 상황에서
다음 입력 field로 focus를 넘겨준다. 그리하여 고객은 tab키 등을 통하여 field이동을 직접 하지
않아도 된다. 즉, 숫자만 누르면 된다는 것이 장점이다.
그런데 입력시 오타를 많이 내는 스타일의 사람들이 있다 그리고 숫자 keypad 사용에 익숙하지 않은
경우 오타발생율은 더욱 더 높다. 거기다가 회원가입 프로세스등의 귀찮은(?) 작업중일때는 확률*2도
넘는 것 같다.(나의 경우... OTL) 이때 고객에게 제공한 편의성은 부메랑으로 날라온다. ㅠ.ㅠ
(CASE)
1. 주민등록 번호를 입력하던 중 앞자리를 잘못 입력했는데 뒷자리로 넘어갔다.
2. 수정을 하려고 shift+tab을 누른다.
3. 시스템이 조용히 얘기한다. '앞자리 다 입력했으니 뒷자리 입력하세요!. 제가 편하게 바로 focus
이동시켜 드릴께요!'
4. shut up!
5. 마우스로 손을 가져가 앞자리 입력하는 곳으로 커서를 옮긴다.
6. 틀린 부분만 수정하기 위해 틀린 부분을 선택하려 shift+화살표로 block지정을 하려 한다.
7. 엇! #3반복!!!
8. 이런 God damned!
9. 마우스로 손을 다시 가져가 앞자리 입력하는 곳으로 커서를 옮긴다.
10. 조심스럽게 backspace key를 눌러 몽땅 지운 후, 조심스럽게 입력한다.
이런 상황을 보면 편의성 제공을 위한게 아니라, 고객을 약올리려는 easter egg같기도 하다. 그런데
더욱 더 웃긴건 나도 코드를 작성시 그대로 한다는 것이다. 문득 오늘 그런 나에게 스스로의 채찍을
들었다. 틀린 것이 있다면 그렇게 하지 말아야 할 것 아닌가?
그래서 오늘 숫자만 입력 받는 field들에 대해서는(대부분 자동 focus이동을 하는 field는 숫자만 입력
받는 경우가 많다.) keycode를 확인하여 처리하도록 코드를 추가했다.
-------------------------------------------------------------------------------------
function MoveFocus(objFrom, objTo)
{
if (objFrom == null || objTo == null) return;
if ( objFrom.value.length >= objFrom.getAttribute("maxlength") && event.keyCode >= 48 && event.keyCode <= 57 )
{
objTo.focus();
}
}
-------------------------------------------------------------------------------------
늘 생각하면서 살자라는 생각을 하면서, 행동은 그를 따르지 못하는 경우가 많다.
지나간 일들을 자책하지 말고 앞으로의 생활에서 조금만 더 신경을 쓰자.
딱!! 스트레스는 받지 않을 수 있는 정도로만~



덧글