js 限制输入N位小数点

这段代码实现了一个JavaScript函数xsdN,用于限制输入字段的数值保留指定的小数位数。根据输入元素的data-xsd属性值,函数会在用户输入时实时更新数值,并在失去焦点时自动补全到指定的小数位数。支持保留1到5位小数的场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/*------------------------保留N位小数-------------------*/

//保留N位小数,无四舍五入, 添加属性 data-xsd="n"
function xsdN(dom, ws) {
    var num = dom.val();
    ws = parseInt(ws);
    var start_wz = num.indexOf(".");
    if (start_wz != -1) {  //当存在小数点时,做切割
        if (start_wz != num.length - 1) {
            var tmp = start_wz + ws + 1;
            var num1 = num.substring(0, tmp);
            var num2 = parseFloat(num1);
            dom.val(num2);
        }
    }
    else { //当不存在小数点时,不允许输入数字,小数点外的字符
        num = parseFloat(num);
        if (num) {
            dom.val(num);
        } else { //num==NaN的时候
            if (num == 0) {
                dom.val("0");
            }
            else {
                dom.val("");
            }
        }
    }
}

//保留1位小数
$(document).on("keyup", "input[data-xsd=1]", function () {
    xsdN($(this), $(this).attr("data-xsd"));
});
//失去焦点自动补全1位小数点
$(document).on("blur", "input[data-xsd=1]", function () {
    var value2 = Number($(this).val()).toFixed(1);
    $(this).val(value2);
});

//保留2位小数
$(document).on("keyup", "input[data-xsd=2]", function () {
    xsdN($(this), $(this).attr("data-xsd"));
});
//失去焦点自动补全2位小数点
$(document).on("blur", "input[data-xsd=2]", function () {
    var value2 = Number($(this).val()).toFixed(2);
    $(this).val(value2);
});

//保留3位小数
$(document).on("keyup", "input[data-xsd=3]", function () {
    xsdN($(this), $(this).attr("data-xsd"));
});
//失去焦点自动补全3位小数点
$(document).on("blur", "input[data-xsd=3]", function () {
    var value2 = Number($(this).val()).toFixed(3);
    $(this).val(value2);
});

//保留4位小数
$(document).on("keyup", "input[data-xsd=4]", function () {
    xsdN($(this), $(this).attr("data-xsd"));
});
//失去焦点自动补全4位小数点
$(document).on("blur", "input[data-xsd=4]", function () {
    var value2 = Number($(this).val()).toFixed(4);
    $(this).val(value2);
});

//保留5位小数
$(document).on("keyup", "input[data-xsd=5]", function () {
    xsdN($(this), $(this).attr("data-xsd"));
});
//失去焦点自动补全5位小数点
$(document).on("blur", "input[data-xsd=5]", function () {
    var value2 = Number($(this).val()).toFixed(5);
    $(this).val(value2);
});

/*------------------------ /保留N位小数-------------------*/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值