EasyUI 解决 datagrid 中 NumberBox 限制小数位数后不能输入小数点问题

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

var arrColumnsCNT = [[
                {
                    title: ‘毛重‘,
                    field: ‘GrossWeight‘,
                    halign: ‘center‘,
                    width: 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,
                    width: 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);

  

时间: 2024-10-11 09:39:21

EasyUI 解决 datagrid 中 NumberBox 限制小数位数后不能输入小数点问题的相关文章

在EasyUI的DataGrid中嵌入Combobox

在做项目时,需要在EasyUI的DataGrid中嵌入Combobox,花了好几天功夫,在大家的帮助下,终于看到了它的庐山真面: 核心代码如下: <html> <head> @*添加Jquery EasyUI的样式*@ <link href="@Url.Content("../../Content/JqueryEasyUI/themes/default/easyui.css")" rel="stylesheet" /

EasyUi DataGrid中数据编辑方式及编辑后数据获取,校验处理

EasyUi中的DataGrid提供前台编辑的相关函数. 实现客户选中DataGrid中一列后,对选中列中的一个字段进行编辑,并对数据进行实时校验后,传递至后台保存的需求, 主要涉及到DataGrid中设置编辑单元格,获取编辑单元格,编辑单元格的onchange事件处理,通过当前光标所在编辑单元格获取所在行. 1. 设置编辑单元格 在列定义中增加editor属性,参数为type,options eg: {title:'上级分配额度',field:'assigned_amount_temp',wi

EasyUI 的DataGrid中DateTime的格式化问题

想必用过EasyUI的朋友们都应该会遇到这样的情况吧:(下图) 第一步:添加如下方法: function getTime(/** timestamp=0 **/) { var ts = arguments[0] || 0; var t, y, m, d, h, i, s; t = ts ? new Date(ts * 1000) : new Date(); y = t.getFullYear(); m = t.getMonth() + 1; d = t.getDate(); h = t.getH

easyUi 表格 datagrid 中字段超链接设置参数

datagrid中设置field链接   链接中通常传递的是int类型的ID字段,但是有时难免传递文本之类的参数 那可以添加 如下 : field: 'batchImg', title: '质检报告', width: 60,                        formatter: function (value, row, index) {                            //商品ID                                       

EasyUI获取DataGrid中某一列的所有值

有一需求为计算[成绩]列中所有数据之和 function count() { var rows = $('#dg'').datagrid('getRows')//获取当前页的数据行 var total = 0; for (var i = 0; i < rows.length; i++) { total += rows[i]['SCORE']; //获取指定列 } alert(total); } 作者:itmyhome 版权声明:本文为博主原创文章,未经博主允许不得转载.

Easyui的datagrid中的if判断问题

初学easyui,在columns里面有这么一列 { field : 'alert', title : '报警类型', width : 150, rowspan : 2, align : 'center' } 想判断当datagrid里面的值为"1"(String类型)的时候列表显示为A,值为"2"的时候显示B,这个该怎么写? 解答: { field : 'alert', title : '报警类型', width : 150, rowspan : 2, align

解决springmvc中使用redirect跳转后https变为http

方法一:配置文件修改ViewResolver的 redirectHttp10Compatible 属性,这个属性是为了兼容 http1.0协议. <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="viewClass" value="org.s

Java中Scanner类在nextInt()后无法输入nextLine()的问题

首先,Scanner是一个扫描器,它扫描数据都是去内存中一块缓冲区中进行扫描并读入数据的,而我们在控制台中输入的数据也都是被先存入缓冲区中等待扫描器的扫描读取.这个扫描器在扫描过程中判断停止的依据就是“空白符”,空格啊,回车啊什么的都算做是空白符. nextInt()方法在扫描到空白符的时候会将前面的数据读取走,但会丢下空白符“\r”在缓冲区中,但是,nextLine()方法在扫描的时候会将扫描到的空白符一同清理掉. 了解了这两个方法特性和区别,就知道了上边的代码究竟是怎么回事,以及知道了解决的

C# decimal保留指定的小数位数,不四舍五入

decimal保留指定位数小数的时候,.NET自带的方法都是四舍五入的. 项目中遇到分摊金额的情况,最后一条的金额=总金额-已经分摊金额的和. 这样可能导致最后一条分摊的时候是负数,所以自己写了一个保留指定位数小数的方法. 扩展方法的使用,使得调用起来很优雅. 1 public static class DecimalExtension 2 { 3 /// <summary> 4 /// decimal保留指定位数小数 5 /// </summary> 6 /// <para