jquery easyui datagrid中NumberBox限制小数位数后不能输入小数点的解决办法

在使用jQuery EasyUI的datagrid结合NumberBox组件时,遇到输入小数自动四舍五入及无法输入小数点的问题。通过修改NumberBox的默认过滤函数,允许输入小数点并限制小数位数,解决了该问题。

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

    最近在用jquery做页面,当datagrid放置数字文本框时输入小数会自动四舍五入,然后加了小数位数限制时不能输入小数点了。

初始化代码:

{field: 'item_SWZNetWeight', title: '净重(吨)', width: 60, editor:{type:'numberbox',options:{min:0,precision:4}}},

这时是不能输入小数点的,需要在初始化时加入这段代码才能输入:

//解决numberbox不能输入小数点的bug
        (function($){
            $.fn.numberbox.defaults.filter = function(e){
                var opts = $(this).numberbox('options');
                var s = $(this).numberbox('getText');
                if (e.which == 45){    //-
                    return (s.indexOf('-') == -1 ? true : false);
                }
                var c = String.fromCharCode(e.which);
                if (c == opts.decimalSeparator){
                    return (s.indexOf(c) == -1 ? true : false);
                } else if (c == opts.groupSeparator){
                    return true;
                } else if ((e.which >= 48 && e.which <= 57 && e.ctrlKey == false && e.shiftKey == false) || e.which == 0 || e.which == 8) {
                    return true;
                } else if (e.ctrlKey == true && (e.which == 99 || e.which == 118)) {
                    return true;
                } else {
                    return false;
                }
            }
        })(jQuery);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值