zoukankan      html  css  js  c++  java
  • EasyUI 解决 datagrid 中 NumberBox 限制小数位数后不能输入小数点问题

    初始化界面,发现编辑datagrid,不能输入小数点。

    var arrColumnsCNT = [[
                    {
                        title: '毛重',
                        field: 'GrossWeight',
                        halign: 'center',
                         60,
                        sortable: true,
                        frozen: true,
                        editor: {
                            type: 'numberbox',
                            options:{precision:2}
                        }
                    }
                 ]];
    
     function DefDataGridCNT() {
                    objDataGridCNT = $('#tableDataGridCNT').datagrid({
                        selectOnCheck: false,
                        checkOnSelect: false,
                        singleSelect: true,
                        rownumbers: true,
                        striped: true,
                        remoteSort: false,
                        multiSort: true,
                        scrollbarSize: 0,
                        fitColumns: true,
                        height: 250,
                         1000,
                        onClickCell: onClickCellCNTGrid,
                        columns: arrColumnsCNT, 
                        onBeginEdit:function(rowIndex){
                            var editors = $('#tableDataGridCNT').datagrid('getEditors', rowIndex);
                            var n1 = $(editors[8].target);
                            var n2 = $(editors[9].target);
                            var n3 = $(editors[12].target);
                            n1.add(n2).numberbox({
                                onChange:function(){
                                    var cost = Number(n1.numberbox('getValue'))+Number(n2.numberbox('getValue'));
                                    n3.numberbox('setValue',cost);
                                }
                            })
                        },
                        onAfterEdit: function (index, row, changes) {
                            autoSetValue();
                        }
                    });
                };

    解决办法:页面初始化加入如下代码

               //解决numberbox小数点问题
                (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);
    

      

  • 相关阅读:
    centos通过yum安装mongodb
    js基于另一个数组排序数组
    centos 7 安装emule客户端
    typescript中interface和type的区别
    nodejs安装管理工具nvm的安装和使用
    PM2的参数配置
    centOS添加ipv6支持(仅限已分配ipv6地址和网关)
    linux执行计划任务at命令
    mysql中获取本月第一天、本月最后一天、上月第一天、上月最后一天等等
    win10子系统ubuntu内的nginx启动问题
  • 原文地址:https://www.cnblogs.com/linhuide/p/6253533.html
Copyright © 2011-2022 走看看