如何停止指数值并进行最大数字验证

时间:2017-02-13 06:38:57

标签: javascript jquery

我正在尝试输入最大数字为16,包括。和十进制数 金额应该是最多13和一个“。”和2位小数 例如。 5656546355646.00 = 16个字符

但目前尚未验证并向上显示指数值。 最多13位,应该只显示最多2位小数的整数,并且不应显示指数值

这是我的代码 脚本

function getKeyValue(keyCode) {
    if(keyCode > 57) { //also check for numpad keys
        keyCode -= 48;
    }
    if(keyCode >= 48 && keyCode <= 57) {
        return String.fromCharCode(keyCode);
    }
}

function formatNumber(input) {
    if(isNaN(parseFloat(input))) {
        return "0.00";
    }
    var num = parseFloat(input);
    return (num / 100).toFixed(2);
}

$(".amountInput").keydown(function(e) {     
                //handle backspace key

                var input = $(this).attr("data-actual-input");
                if(e.keyCode == 8 && input.length > 0) {
                    input = input.slice(0,input.length-1); //remove last digit
                    $(this).attr("data-actual-input", input);
                    $(this).val(formatNumber(input));
                }
                else {
                    var key = getKeyValue(e.keyCode);
                    if(key) {
                        input += key; //add actual digit to the input string
                        $(this).attr("data-actual-input", input);
                        $(this).val(formatNumber(input)); //format input string and set the input box value to it
                    }
                }
                if(e.which == 8 || e.which == 46) {
                     return true;
                }
                var inpVal = $(this).val();
                if(inpVal.length > 15) {
                 e.preventDefault();
                 return false;
                }
                return false;
            });

html代码

    <input type='tel' class="form-control amountInput" name="amt" data-actual-input="" value="0.00" required>

的jsfiddle

https://jsfiddle.net/Lpn1w84f/1/

1 个答案:

答案 0 :(得分:0)

您是否尝试过maxLength属性?从你的例子:

<input type='tel' class="form-control amountInput" name="amt" data-actual-input="" value="0.00" maxlength="15" required>