인터넷정보

TextField의 Align - 텍스트 정렬 및 콤마 찍기

알 수 없는 사용자 2007. 10. 18. 13:43
<script>
function formatCurrency(arg){
n=String(arg)
//소수점 파싱 시작
o=n.split(".")[0]
p=n.split(".")[1]
//파싱 끝
n=""
//사용자가 임의로 넣은 콤마(,)제거
while(o.indexOf(",")!=-1){
        o=o.replace(",","")
        }
//제거 끝
//소수점 이상 부분 변환
d=o.length%3
for(i=0;i<o.length;i++){
        if(i%3==d){
                n+=","
                }
        n+=o.charAt(i)
        }
if(!d){n=n.replace(n.charAt(0),"")}
//변환 끝
//"소수점 이하가 있다면"조건부 시작
if(p){n+="."+p}
//조건부 끝
return n
}

function myFunction(obj){
obj.oldValue=obj.value
obj.value=formatCurrency(obj.value)
obj.dir="rtl"
}
function myFunction2(obj){
if(obj.oldValue){
obj.value=obj.oldValue
}
obj.select()
obj.dir="ltr"
}
</script>
<style>
input{border:solid 1px black}
</style>
<body>
<input type=text dir="rtl" onfocus="myFunction2(this)" onblur="myFunction(this)"><br>
<input type=text dir="rtl" onfocus="myFunction2(this)" onblur="myFunction(this)"><br>
<input type=text dir="rtl" onfocus="myFunction2(this)" onblur="myFunction(this)"><br>
<input type=text dir="rtl" onfocus="myFunction2(this)" onblur="myFunction(this)"><br>
vbscript에는 FormatCurrency()라는 자체 내장 함수가 있습니다<br>
javascript에는 위와 같은 함수가 없기때문에 넷스케잎과의 호환을 위해<br>
formatCurrency()라는 함수를 만들어 사용했습니다<br>
저는 엑셀 워크쉬트처럼 보이게 만들었는데 맘에 들지 모르겠네요<br>
<input type=text>엘리먼트의 어트리뷰트중 dir(direction의 약자같죠?)의 속성은<br>
ltr(left to right)과 rtl(right to left)이 있습니다<br>
테스트는 ie5.5 와 nn6(6.01)에서 했습니다
</body>

-[김형진님제공]
반응형