html限制文本框只能输入数字和一个小数点

近期在做一个前台页面,有一个文本框是用来输入充值金额的,就想到了限制用户只能输入纯数字的数据且只能包含一个小数点。下面就是我实现的代码

$(function() {
    //阻止数字键以外的按键输入
    $("#zf_money").keydown(function(e) {
        digitInput($(this),e);
    });

    function prevent(e) {
        e.preventDefault?e.preventDefault():e.returnValue=false;
    };

    function digitInput(el,e) {
        var e=e||window.event; // FF、Chrome IE下获取事件对象
        var c=e.charCode||e.keyCode; //FF、Chrome IE下获取键盘码
        var val=el.val();
        if(c==110||c==190) { // 110 (190) - 小(主)键盘上的点
            (val.indexOf(".")>=0||!val.length)&&prevent(e); // 已有小数点或者文本框为空,不允许输入点
        } else {
            if((c!=8&&c!=46&& // 8 - Backspace, 46 - Delete
            (c<37||c>40)&& // 37 (38) (39) (40) - Left (Up) (Right) (Down) Arrow
            (c<48||c>57)&& // 48~57 - 主键盘上的0~9
            (c<96||c>105)) // 96~105 - 小键盘的0~9
            ||e.shiftKey) { // Shift键,对应的code为16
                prevent(e); // 阻止事件传播到keypress
            }
        }
    };
});
注:$("#zf_money").keydown根据文本框id来设置键盘的keydown事件,根据实际文本框Id值来设置
原文地址:https://www.cnblogs.com/Gethin/p/4843460.html