做了个小把戏, 不知能否满足楼主<input onblur="mm(this)">
<SCRIPT LANGUAGE="JavaScript">
function mm(e)
{
  var s = e.value.replace(/^\s*|\s*$/g, "");
  if(s=="") return;
  if(isNaN(s)){alert("输入的不是数字!"); e.select();}
  if(s.indexOf(".")>-1) return;
  e.value = s.replace(/^(\d*)(\d{2})$/, "$1.$2")
}
</SCRIPT>

解决方案 »

  1.   

    <input onfocusout="this.value = parseFloat(this.value)/100">
      

  2.   

    <input onblur="this.value = parseFloat(this.value)/100">
      

  3.   

    To: manyou(他山之石) 思路不错, 但是有BUG
    <input onblur="this.value = parseFloat(this.value)/100" value="0.0012">
      

  4.   

    用下面这种方法试试
    <html>
    <head>
    <title>无标题文档</title>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <script language="javascript">
    function keydown(src){
    var e=window.event;
    var code=e.keyCode;
    var cursorPos=getPos(src);
    if(code==8){ //退格
    if(cursorPos==5 || cursorPos==8|| cursorPos==11 || cursorPos==14){
    movenext(src,cursorPos,-1);
    cursorPos-=1;
    }else movenext(src,cursorPos,0);
    //alert();
    var range=setSelect(src,cursorPos-1);
    range.text="0";
    movenext(src,cursorPos,-1);
    e.returnValue=false;
    //src.focus();
    return false;
    }else if(code==46)  e.returnValue=false;
    }
    function keypress(src){
    var e=window.event;
    var code=e.keyCode;
    var cursorPos=getPos(src);
    if(!keyPressInt()) return false;
    if(cursorPos==4 || cursorPos==7|| cursorPos==10 || cursorPos==13){
    movenext(src,cursorPos,1);
    cursorPos += 1;
    }
    var num = String.fromCharCode(code);
    //alert(num);
    if(checkInput(src,num,cursorPos)){
    var range=setSelect(src,cursorPos);
    range.text=num;
    if(cursorPos==3 || cursorPos==6|| cursorPos==9 || cursorPos==12)
    movenext(src,cursorPos,2);
    else movenext(src,cursorPos,1);
    }
    e.returnValue=false;
    return false;
    }
    function checkInput(src,num,pos){
    var val=src.value;
    var year=parseInt(val.substring(0,4),10);
    var month=parseInt(val.substring(5,7),10);
    output.value+="num="+num+"   pos="+pos+"   val="+val + "   year="+year+"   month="+month;
    output.value+="\r\n";
    switch(pos){
    case 0: if(num!=1 && num!=2) return false; break;
    case 5: if(num>1) return false;break;
    case 6: if(val.charAt(5)=="1" && num>2 || val.charAt(5)=="0" && num==0) 
    return false;break;
    case 8: switch(month){
    case 1: case 3: case 5: case 7: case 8: case 10: case 12:
    case 4: case 6: case 9: case 11:
    if(num>3) return false;break;
    case 2: if(num>2) return false;break;
    }break;
    case 9: var char8=val.charAt(8); switch(month){
    case 1: case 3: case 5: case 7: case 8: case 10: case 12:
    if(char8==0 && num==0 || char8==3 && num>1) return false;
    case 4: case 6: case 9: case 11:
    if(char8==0 && num==0 || char8==3 && num!=0) return false;
    case 2: if(char8==0 && num==0) return false;
    else if(char8==2 && !(year%4==0 && year %400==0) && num>8) return false;
    }break;
    case 11: if(num>2) return false;break;
    case 12: if(parseInt(val.charAt(11)+num)>23) return false;break;
    case 14: if(num>5) return false;break;
    }
    output.value+="return true;"; output.value+="\r\n";
    return true;
    }
    function setSelect(src,pos){
    var range = src.createTextRange();
    range.moveStart('character',pos); 
    range.moveEnd('character',pos-src.value.length+1); 
    range.select();
    return range;
    }
    function getPos(obj){
    var ml=obj.value.length;
    var pos=0;
    var rng=document.selection.createRange();
    rng.moveEnd("character",ml);
    try{
    pos=ml-rng.text.length
    }catch(e){}
    return pos;
    }
    function movenext(src,pos,flag)
    {
    var range =src.createTextRange();
    range.moveStart("character",pos+flag);
    range.collapse(true);
    range.select();
    }
    function keyPressInt(){
    var e=window.event;
    code=e.keyCode;
    if(code >=48 && code <=57)  return true;
    else  {window.event.returnValue=false;return false;}
    }
    function checkPaste(){
    window.event.returnValue=false;
    }
    function initDate(){
    var date=new Date();
    var year=date.getFullYear();
    var month=date.getMonth()+1;
    var day=date.getDate();
    var hour=date.getHours();
    var minu=date.getMinutes();
    month=month<10?"0"+month:month;
    day=day<10?"0"+day:day;
    hour=hour<10?"0"+hour:hour;
    minu=minu<10?"0"+minu:minu;
    document.all.dateinput.value=year+"-"+month+"-"+day+" "+hour+":"+minu;
    movenext(document.all.dateinput,0,0);
    }</script>
    </head><body onload="initDate()">
    <p align=center>
    <input name="dateinput" value="0000-00-00 00:00" onkeydown="keydown(this)" size="16" maxlength="16" type="text" onFocus="" onkeypress="keypress(this)" onpaste="checkPaste()" onDrag="checkPaste()" oncut="checkPaste()" onmousemove="checkPaste()">
    </p>
    <p><input type="button" value="clear" onclick="javascript:output.innerText='';">
    <textarea id="output" width="800" height="600" rows="30" cols="100"></textarea>
    </P>
    <script language="JavaScript">
    <!--
    dateinput.focus();
    //-->
    </script>
    </body>
    </html>
      

  5.   

    试了以上各位的办法可以,基本上能满足需求to  meizz(梅花雪)  我基本上最多到小数点2位,基本上没有这个问题吧.我想加上长度的验证再来判断用那种小数点(/100或/10等等)应该就可以了。