폼이 분리된 사업자번호 등을 한번에 paste하기

http://navyism.com
http://libphp.com

시리얼번호가 있는 프로그램을 설치할때…
[ ] – [ ] – [ ] – [ ]
위와 같은 식으로 폼이 나뉘어져 있고…
AAAA-BBBB-CCCC-DDDD
이런식의 시리얼번호를 복사해서 바로 붙이기 하면 한번에 폼안에 들어가는 경우가 있습니다.

웹에서도 마찬가지로 사업자번호와 같은 것을 복사하고 붙이고자 하는 경우가 있는데…
위와 같이 각기 나뉘어진 폼이라면 한번에 붙이가 되진 않겠죠…

그래서 아래와 같은 소스를 만들어 보았는데요…

붙이기 이벤트가 일어나면 복사되어있는 문자들을 가져다가 폼에 순서대로 붙여 주는 형태 입니다.






navyism http://libphp.com/main/data/preview.php?no=3148

미리보기 입니다 07/22 15:51:01

navyism 위쯔님과 무화님께서 보완해주신 소스 입니다^^;;
아…순돌이님께서 제 컴을 쓰셨군요;;;;;헐…이렇게 뵙네요;;









07/22 22:47:58

무화 그건 보통 사업자번호나 계좌 등등 복사 붙여넣기 할때
123-45-12345 이런식으로 중간에 막대기;;가 있어서 그런거
뛰어 넘을려고 그런거고요..
만약 사용자가 1234512345 이런식의 번호를 붙여넣기 하신다고 생각되시면 sText = sText.substr(oElement.size+1);
여기서 +1만 빼주시면 됩니다.
근데 제가 사용자라면 아마도 123-45-12345 이런식으로 파일에 저장하고 메모장등로 불러서 그대로 복사 붙여넣기를 할꺼같아요 07/22 23:43:36

function catchPaste(oElement, maxStep) {
var step=0,add=0;
var sText = clipboardData.getData(‘Text’);
do{
if(oElement.type == ‘text’) {
oElement.value = sText.substr(0,oElement.size);
add = (sText.substr(oElement.size,1).search(/[a-zA-Z0-9]/) != -1) ? 0 : 1;
sText = sText.substr(oElement.size+add);
if(++step == maxStep) break;
}
}while(oElement = oElement.nextSibling)
return false;
}