成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

限制input小數(shù)點(diǎn)及位數(shù)

RobinTang / 3434人閱讀

摘要:小數(shù)點(diǎn)限制兩位小數(shù)正整數(shù)限定為正整數(shù)動(dòng)態(tài)添加了內(nèi)容要用事件委托方式綁定下面的事件保留至多兩個(gè)小數(shù)點(diǎn)的數(shù)字顯示效果說明適用于多種情況判斷

HTML





    
    小數(shù)點(diǎn)限制
    
    
    
    
    



    
兩位小數(shù): 正整數(shù):

JS

function amountInput(parent,child) {
    var CashingAmountLast = "";

    $moneyInput = ""; //動(dòng)態(tài)添加了內(nèi)容  要用事件委托方式綁定下面的事件

    function checkCode(code) {
        var codeArea = code > 57 && code < 96;
        if (!(code == 190 || code == 110 || code == 46 || code == 8 || code == 37 || code == 39)) {
            if (codeArea || code < 48 || code > 105) {
                return false;
            }
        }
        return true;
    }
    
    $(parent).on("keydown", child, function(e) {
        var code = e.keyCode,
            val = e.target.value;
        if (val.indexOf(".") > -1 && (code == 190 || code == 110)) {
            e.target.value = val;
            return false;
        }
        if (!checkCode(code)) {
            return false;
        }
        this.setAttribute("data-keyCode", code);
        return true;
    }).on("input",child, function(e) {
        var val = this.value,
            keyCode = this.getAttribute("data-keyCode"),
            reSet = false;
        if (e.currentTarget.validity.valid) {
            if (val.indexOf(".") < 0 && (keyCode == 190 || keyCode == 110)) {
                val += ".";
            }
        } else {
            val = CashingAmountLast;
            if ((keyCode == 190 || keyCode == 110) && val.indexOf(".") < 0) {
                val = Number(CashingAmountLast).toFixed(1);
            }
            reSet = true;
        }
        fixCashFn.call(this,val, reSet);
    }).on("blur", child,function(e) {
        var val = Number($(this).val());
        if (!isNaN(val)) {
            e.target.value = val;
        } else {
            e.target.value = 0;
        }
    });

    function fixCashFn(a, isReset) {
        let money = typeof a === "string" ? a : a.toString(),
            flag = false,
            valArr = [],
            _slef = this;
        money = money.replace(/s/g, "");
        var strLen = money.length;
        if (isNaN(Number(money))) {
            flag = true;
        } else if (strLen > 0) {
            //保留至多兩個(gè)小數(shù)點(diǎn)的數(shù)字
            if (!/^d+(?:.d{1,2})?$/.test(money) && money.charAt(strLen - 1) !== ".") {
                flag = true;
            }
        }
        if (flag) {
            money = CashingAmountLast;
        }
        if (isNaN(Number(money))) {
            money = "";
        }
        (function() {
            if (money.length > 0) {
                valArr = money.split(".");
                money = Number(valArr[0]).toString().slice(0, 10);
                if (valArr.length > 1) {
                    money += "." + valArr[1].slice(0, 2);
                }
            }
            if (money.charAt(money.length - 1) !== ".") {
                if (a !== money) {
                    $(_slef).val(money);
                    CashingAmountLast = money;
                } else {
                    CashingAmountLast = a;
                }
            }
            if (isReset) {
                $(_slef).val(money);
            }
        })();
    }
}

顯示效果

說明
適用于多種情況判斷

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/83495.html

相關(guān)文章

  • 一些有用的工具函數(shù),如input輸入小數(shù)位數(shù)限制

    摘要:限制數(shù)字且最多輸入小數(shù)的位數(shù)輸入的對(duì)象輸入長(zhǎng)度最后一個(gè)字符是如果符號(hào)超過一個(gè)存在符號(hào)并且不止一位數(shù)注在調(diào)用的時(shí)候需要用原生來(lái)綁定對(duì)象日期轉(zhuǎn)換函數(shù),可以根據(jù)需求來(lái)設(shè)置前幾天后幾天或或或或單位自動(dòng)轉(zhuǎn)換單位 /** * 限制數(shù)字且最多輸入小數(shù)的位數(shù) * @param {[type]} elem 輸入的對(duì)象 * @param {[type]} len 輸入長(zhǎng)度 * @return...

    LeoHsiun 評(píng)論0 收藏0
  • JavaScript 精度丟失問題

    摘要:排除直接使用的數(shù)太大或太小超出范圍,出現(xiàn)這種問題的情況基本是浮點(diǎn)數(shù)的小數(shù)部分在轉(zhuǎn)成二進(jìn)制時(shí)丟失了精度,所以我們可以將小數(shù)部分也轉(zhuǎn)換成整數(shù)后再計(jì)算。 // 1. 兩數(shù)相加 // 0.1 + 0.2 = 0.30000000000000004 // 0.7 + 0.1 = 0.7999999999999999 // 0.2 + 0.4 = 0.6000000000000001 // 2.2...

    iOS122 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<