获取修改前的值
table.on('edit(demo)',function (obj) {
var tr = obj.tr;
// 单元格编辑之前的值
var oldtext = $(tr).find("td[data-field='"+obj.field+"'] div").text();
alert(oldtext);
});
如果想要改变在edit单元格编辑事件中改变单元格的值,需要这样
//判断输入的值是否为数字,不是数字提示并赋值回原本的值
table.on('edit(demo)',function (obj) {
var tr = obj.tr;
//获取编辑前的值
var oldtext = $(tr).find("td[data-field='"+obj.field+"'] div").text();
//判断数据类型
if(!isNumber(obj.value)) {
layer.msg('请输入数字');
console.log(oldtext);
// 重点 赋值
$(tr).find("td[data-field='"+obj.field+"'] input").val(oldtext);
}
});
之所以要这样赋值,是因为在点击layui table单元格的时候 layui会在td标签下添加一个input输入框,
在输入完成后调用你绑定的edit事件,最后在将input输入框的值覆盖到单元格div 的text里面
所以这样的写法是没有用的:
// 注意这是错误例子
table.on('edit(demo)',function (obj) {
var tr = obj.tr;
//获取编辑前的值
var oldtext = $(tr).find("td[data-field='"+obj.field+"'] div").text();
//判断数据类型
if(!isNumber(obj.value)) {
layer.msg('请输入数字');
console.log(oldtext);
// 赋值
$(tr).find("td[data-field='"+obj.field+"'] div').text(oldtext);
}
});
//判断是非数字
function isNumber(val) {
var regPos = /^\d+(\.\d+)?$/; //非负浮点数
var regNeg = /^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$/; //负浮点数
if (regPos.test(val) || regNeg.test(val)) {
return true;
} else {
return false;
}
}