<script>
function formatdata(obj)
{
datastr=obj.value.split(".");
if(datastr.length==2)
temp="."+datastr[1];
else
temp="";
if(datastr[0].length>3)
{
for(i=datastr[0].length;i>3;i=i-3)
{
temp=","+datastr[0].substring(i-3,i)+temp;
}
temp=datastr[0].substring(0,i)+temp;
document.all.mytext.value=temp;
}
}
</script>
<input name=realdata onkeyup=formatdata(this)>
<input type=text name=mytext>

解决方案 »

  1.   

    seabell,很好,如果我只要一个框呢?
    即在一个文本框内输入数字,在这个框内就可以显示为那样
    并且要自动加为2位小数
    比如: 111222333    ——————》 111,222,333.00
    必须要在一个文本框内哦还是先谢谢SEABELL兄!
      

  2.   

    提交后取右边文本框realdata的值
    <script>
    function formatdata(obj)
    {
    datastr=obj.value.replace(/,/g,"").Trim();
    if(datastr!="")
    {
    datastr=datastr.split(".");
    if(datastr.length==2)
    {
    temp="."+datastr[1];
    if(temp.length<3)
    temp=temp+"0";
    else
    temp=temp.substring(0,3);
    }
    else
    temp=".00";i=datastr[0].length;
    if(datastr[0].length>3)
    {
    for(i=datastr[0].length;i>3;i=i-3)
    {
    temp=","+datastr[0].substring(i-3,i)+temp;
    }
    }
    temp=datastr[0].substring(0,i)+temp;
    }
    else
    temp="";
    document.all.mytext.value=temp;
    document.all.realdata.value=temp.replace(/,/g,"");
    }
    function String.prototype.Trim() 
    {
    return this.replace(/(^\s*)|(\s*$)/g,"");
    }
    var  timer=null;
    function check(uid)
    {
    var obj=document.all(uid);str=obj.value.replace(/,/g,"");
    if(isNaN(str))
    obj.value=obj.value.slice(0,-1);
    else
    formatdata(obj);
    timer=setTimeout("check('"+uid+"')",1000);
    }
    function myclear(){
    clearTimeout(timer)
    }
    </script>
    <input name=mytext onfocus=check(this.uniqueID) onblur=myclear()>
    <input type=text name=realdata>