用户在输入框输入数值后, 网页显示出这个数值的四舍五入结果.1. 如何保证用户输入的是数字, 包括负号, 而不是字母之类的?2. 如何正确实现四舍五入?
<div><input id="t1"type="text"maxlength="20"/></div>document.getElementById("qq").innerHTML="结果: "+toString(parseFloat(t1.value).toFixed(2));我是这么写的. 但是有问题. 请教如何修改? 谢谢!我的全部分只剩下40. (^ _ ^)

解决方案 »

  1.   


    var str = "-2.646";
    var reg = /\d+(\.\d+)?$/;
    if(reg.test(str)){
       var result = parseFloat(str).toFixed(2); //结果 -2.65
    }
      

  2.   

    <input type="text" name="nb" id="nb" onblur="check(this)" onkeyup="this.value=this.value.replace(/[^\d.-]/,'')"/>
    <script type="text/javascript">
        function check(obj){
            var v=obj.value;
            if (v=="")return;
            if(!isNaN(v)){
                obj.value = tofixed(v,2);
            }else{
                obj.value = "";
                alert("输入有误");
            }
        }
        var tofixed=function(v,len)
        {
            var add = 0;
            var s,temp;
            var start = v.indexOf(".");
            if(v.substr(start+len+1,1)>=5)add=1;
            temp = Math.pow(10,len);
            s = Math.floor(v * temp) + add;
            return s/temp;
        }
    </script>