jquery easyui datagrid保存时处理数据合法性:
//保存更改
$('#dg').datagrid('acceptChanges');
//处理输入的非法数据
var rows=$('#dg').datagrid('getRows');
for(var i=0;i<rows.length;i++){
var obj=rows[i];
//使用正则处理单价和数量去除非法字符
obj.buyprice=obj.buyprice.toString().replace(/[^\d.]/g,'');
obj.num=obj.num.toString().replace(/[^\d]/g,'');
//更新当前行
$('#dg').datagrid('updateRow',{index:i,row:obj});
}
经测试存在bug,因为这里对数字的判断依赖了datagrid里的editor:{type:numberbox},改进后代码如下:
//保存更改
$('#dg').datagrid('acceptChanges');
//处理输入的非法数据
var rows=$('#dg').datagrid('getRows');
for(var i=0;i<rows.length;i++){
var obj=rows[i];
//使用正则处理单价和数量去除非法字符
obj.buyprice=Number(obj.buyprice.toString().replace(/[^\d.]/g,'')).toFixed(1);
obj.num=Number(obj.num.toString().replace(/[^\d]/g,'')).toFixed();
//更新当前行
$('#dg').datagrid('updateRow',{index:i,row:obj});
}