<SCRIPT LANGUAGE="JavaScript">
<!--
function test(obj){
var reg = /^[\d]*(\.)?[\d]{2}$/gi;
var str = obj.value;
if( !reg.test(str) ){
alert("请输入数字,小数点后带2位");
return false;
}
}
//-->
</SCRIPT>
 <input type=text style="ime-mode: disabled ; " onchange="test(this);">  //style="ime-mode: disabled ; "禁止调用输入法

解决方案 »

  1.   

    ps:
    style="ime-mode: disabled ; "禁止调用输入法只适用IE,且不能阻止用户粘帖~~~
      

  2.   


    效果是有的, 我知道你的意思, 你是想不然用户输入字母, 对吧?
    那就这样吧:
    function onkeypress()
    {
        var currentKey = String.fromCharCode(event.keyCode);
        if(!currentKey.match(/[\d\.]/)) {
          event.returnValue = false;
          return;
        }
        var documentTextRange = document.selection.createRange();
        var selectionLength = documentTextRange.text.length;
        documentTextRange.moveStart("textedit", -1);
        var currentLength = documentTextRange.text.length;
        var preText = documentTextRange.text.substr(0, currentLength-selectionLength);    documentTextRange = document.selection.createRange();
        documentTextRange.moveEnd("textedit", 1);
        currentLength = documentTextRange.text.length;
        var endText = documentTextRange.text.substr(selectionLength, currentLength-selectionLength);    var valueToMatch = preText+currentKey+endText;
        if(!valueToMatch.match(/^\d{0,}(\.\d{0,}$|$)/)) {
          event.returnValue = false;
        }
    }试试看吧, 不过要阻止中文输入法的话, 不好做, ie下好办, 可是其他的不好, 不如加上, onblur在做整个的判断一下, 问题就解决啦
      

  3.   

    楼上的效果和我写的一样,不过还有两个问题:第一,小数点后没有保留两位;第二,用输入法(搜狗、酷狗或者只能ABC还能在文本框里打入中文的)
      

  4.   

    <input type="text" name="text1" id="text1" onkeyup='this.value=this.value.replace(/[^0-9.]/gi,"")' onafterpaste='this.value=this.value.replace(/[^0-9.]/gi,"")'>
    这样就行了
      

  5.   

    <input type="text" size="12" onkeyup="this.value=this.value.replace(/[^\d\.]+?/g,'')" />
      

  6.   

    终于解决问题了
    <script language="javascript">
    function KeyPress(objTR)
    {//只允许录入数据字符 0-9 和小数点
       //var objTR = element.document.activeElement;  
    var txtval=objTR.value;  
    var l=objTR.value.length;
    var key = event.keyCode;
    if((key < 48||key > 57)&&key != 46)
    {  
    event.keyCode = 0;
    }
    else
    {
    if(key == 46)
    {
    if(txtval.indexOf(".") != -1||txtval.length == 0)
    {
    event.keyCode = 0;
    }
    }
    }
    if(txtval.indexOf(".") != -1)
    {
    var decimalPart=txtval.substring(txtval.indexOf(".")+1,l);  
    if(decimalPart.length>=2)
    {  
    event.keyCode = 0;
    }
    }
    }
    </script>
    <tr>
    <td height="30" align="right">金额:</td>  
    <td><input type="text" name="Price" style="width:200px" onKeyPress="javascript:KeyPress(this);"><font color="#666666">元</font></td>
    </tr>
      

  7.   

    控制输入中文只要加onKeyUp="value=value.replace(/[^\d.]/g,'')"
      

  8.   

    function BASEisNotFloat(theFloat)
            {
                //判断是否为浮点数
                len=theFloat.length;
                dotNum=0;
                if (len==0)
                return true;
                for(var i=0;i<len;i++){
                oneNum=theFloat.substring(i,i+1);
                if (oneNum==".")
                dotNum++;
                if ( ((oneNum<"0" || oneNum>"9") && oneNum!=".") || dotNum>1)
                return true;
                }
                if (len>1 && theFloat.substring(0,1)=="0"){
                if (theFloat.substring(1,2)!=".")
                return true;
                }
                return false;
            }
            
    function BASEisNotNum(theNum)
            {
                //判断是否为数字
                if (theNum=="")
                return false;
                for(var i=0;i<theNum.length;i++){
                oneNum=theNum.substring(i,i+1);
                if (oneNum<"0" || oneNum>"9")
                return true;
                }
                return false;
            }