아래 소스에서 〈는 특수문자이다.
〈!-- 불여우에서는 event를 자동으로 넘겨주지 않는다. -->
〈!-- http://phpschool.com/gnuboard4/bbs/board.php?bo_table=qna_html&wr_id=135379&sca=&sfl=wr_subject||wr_content&stx=keypress&sop=and 참조 -->
〈!-- 숫자 키만 입력 받는다. 한글 입력은 스타일로 막는다. -->
〈!-- http://dayweb.tistory.com/28?srchid=BR1http%3A%2F%2Fdayweb.tistory.com%2F28 참조 -->
〈input id=commastring type=text style=ime-mode:disabled onkeydown=checkkey(event,this.value) onblur=addcomma(this.value)>
〈span id=bugspan>〈/span>
〈script>
function checkkey(e,str){
document.getElementById('bugspan').innerHTML=e.keyCode
//숫자와 마침표, 쉼표, 백스페이스만 허용
if((e.keyCode〈48 || (e.keyCode>57 && e.keyCode〈96) || e.keyCode>105) && e.keyCode!=8 && e.keyCode!=188 && e.keyCode!=190){
//window.event가 참이면 ie, 아니면 불여우로 판단해서 각각의 방식으로 쓴다. 공통된 방법은 못 찾았다.
//http://forums.mozilla.or.kr/viewtopic.php?f=9&t=3380 참조
if(window.event){
e.returnValue=false
}
else{
e.preventDefault()
}
}
//두 번째 마침표가 들어오면 무시한다.
else if(str.indexOf('.')>-1 && e.keyCode==190){
if(window.event){
e.returnValue=false
}
else{
e.preventDefault()
}
}
}
function addcomma(str){
var integer_string='',comma_string='',float_string=''
//마침표가 있으면 마침표로 분할해서 왼쪽 문자열만 쉼표를 찍는다.
if(str.indexOf('.')>0){
//마침표 왼쪽 문자열에서 쉼표를 제거한다.
//http://roresy.tistory.com/427?srchid=BR1http%3A%2F%2Froresy.tistory.com%2F427 참조
integer_string=str.split('.')[0].replace(/,/gi,'')
float_string='.'+str.split('.')[1].replace(/,/gi,'')
}
else{
integer_string=str
}
if(integer_string.indexOf(',')==-1 && integer_string.length>3){
for(var i=3;i〈integer_string.length+3;){
if(comma_string.length>0){
comma_string=integer_string.substr(integer_string.length-i,3)+','+comma_string
}
else{
comma_string=integer_string.substr(integer_string.length-i,3)
}
integer_string=integer_string.substr(0,integer_string.length-i)
}
document.getElementById('commastring').value=comma_string+float_string
document.getElementById('bugspan').innerHTML=''
}
else{
if(str.length>3){
document.getElementById('bugspan').innerHTML='오류가 발생하였습니다.'
}
}
}
〈/script>
'쓸만한 주저리' 카테고리의 다른 글
이미지를 화면에 뿌리지 않고 크기(픽셀)를 알 수 있는 법 (0) | 2008.10.20 |
---|---|
특정 자바스크립트 개체의 모든 속성 이름 알아내기 (0) | 2008.10.17 |
꺽은선 그래프 그리기 (0) | 2008.10.16 |
웹에 산점도 구현하기 (0) | 2008.10.16 |
2003 서버 종료 이벤트 추적기 사용하지 않기 (0) | 2008.09.13 |