验证用户输入的是否是数字吗?
可以用isNaN()

解决方案 »

  1.   

    <script>
    function isNumeric()
    {
    var obj = event.srcElement
    var s = event.keyCode
    var NgIsIn = obj.value.indexOf("-")>-1
    var DotIsIn = obj.value.indexOf(".")>-1
    var idx = getCursorPos(obj)
    var flag = true
    if ((s>=35 && s<=39) || s == 109 || s==110 || s == 189 || s == 8 || s == 9 || s == 46  || (s>=96 && s <=105) || (s>=48 && s <=57))
    {
    if (s == 110)
    {
    if (DotIsIn)
    {
    flag = false
    }
    else
    {
    if (NgIsIn)
    {
    if (idx==0)
    flag = false
    }
    }
    }

    if (s == 109 || s == 189)
    {
    if (NgIsIn)
    {
    flag = false
    }
    else
    {
    if (idx!=0)
    flag = false
    }
    }
    else
    {
    if (NgIsIn && idx==0 && !((s>=35 && s<=39) || s == 8 || s == 9 || s == 46))
    flag = false
    }
    }
    else
    {
    flag = false
    }
    return flag
    }function getCursorPos(obj)
    {
    var len = obj.value.length;
    var pos = 0;
    var rng = document.selection.createRange();
    rng.moveEnd("character",len);
    try{
    pos = len-rng.text.length
    }catch(e){}
    return pos;
    }
    </script>
    使输入只能为数
    <input onkeydown="return isNumeric()" id=num>
    <button onclick='alert(num.value*1)'>click</button>