背景
管理系统编辑页面存在子表,数据提交之前需要对子表进行非空校验
方案一
// 非空校验
emptyCheck(obj) {
let flag
if (JSON.stringify(obj) === '{}') {
flag = true
} else {
try {
Object.keys(obj).forEach(function (key) {
if (obj[key] == null || obj[key] == undefined || obj[key].length == 0 || obj[key] == '') {
flag = true
} else {
flag = false
forEach.break = new Error()
}
})
} catch (e) {}
}
return flag
},
方案二:(后来新发现一个简单的)
const isEmpty = obj => Reflect.ownKeys(obj).length === 0 && obj.constructor === Object;
isEmpty({}) // true
isEmpty({a:"not empty"}) //false
方案三:(非常实用!!!!)
//判断是否空值
var isRequiredButEmpty = function(isRequred, val) {
if(!isRequred) {
//如果是非必填,返回
return false;
}
//以下处理必填情况
if(!val || val == '') {
//如果单值为空
return true;
}
let value = JSON.parse(val)['value'];
if(!value || value == '') {
//如果双值为空
return true;
}
return false;
}
// 使用:
submit(){
if(isRequiredButEmpty(true, this.state.aaa)) {
return {success:false, msg: '请填写必填项:aaa!'};
}
}
submit()