案例:限制本周接单金额为必填且不能小于0
1.数字0
vm.receiptMoney = 0 console.log(typeof vm.receiptMoney)//number console.log(!vm.receiptMoney)//true console.log((parseFloat(vm.receiptMoney)<0))//false if(!vm.receiptMoney||(parseFloat(vm.receiptMoney)<0)){ Message({message: '本周接单金额为必填项,且不能小于0!',type: 'warning'}); return false; }
2.字符串类型的0
vm.receiptMoney = 0 console.log(typeof vm.receiptMoney)//string console.log(!vm.receiptMoney)//false console.log((parseFloat(vm.receiptMoney)<0))//false if(!vm.receiptMoney||(parseFloat(vm.receiptMoney)<0)){ Message({message: '本周接单金额为必填项,且不能小于0!',type: 'warning'}); return false; }
比较:Number类型的0,取反时就说true; String类型的0,取反时就说false;显然1中数字0中并不是想要的结果,而编辑单据的时候,后台返回的是一个Number类型的0
导致Number类型的0判断成未填写状态,出现判断出错,
而重新编辑成0就不会出现错误,因为编辑后的0是String类型的0;如果不编辑就是默认后台传过来的Number类型的0,导致出现判断错误
处理:先将后台返回回来的Number类型的0转成String类型的0,即:vm.receiptMoney = resData.receiptMoney + ' '