首页 > 代码库 > EasyUI 解决 datagrid 中 NumberBox 限制小数位数后不能输入小数点问题
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);
EasyUI 解决 datagrid 中 NumberBox 限制小数位数后不能输入小数点问题
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。