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

在使用EasyUI的datagrid中,当NumberBox设置精度后,输入小数点出现异常。通过在页面初始化时添加自定义过滤函数,修复了无法输入小数点的问题。该函数检查输入事件,允许小数点输入且仅在小数点未出现时才接受,同时也处理了其他特殊字符和键盘快捷键。
摘要由CSDN通过智能技术生成

初始化界面,发现编辑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);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值