数组对象 或 对象中不能为空

该代码段展示了如何在JavaScript中进行表单数据的验证,包括数组对象的非空检查、单个对象属性的非空检查以及数值类型的正则验证。在验证失败时,会找出第一项不完整的数据并提示用户。最后,使用Promise处理多个表单验证并返回结果。
摘要由CSDN通过智能技术生成

    
   // 数组包对象不能为空
      let bol = this.tableDate.every((obj) => {
        return Object.values(obj).every((value) => value !== '')
      })
     
   
    // 一项  不能为空
    objectNull (obj) {
      // 如果所有属性值都不为空,返回true,否则返回false。
      return Object.values(obj).every((value) => value)
    },

    
    validateTableData (tableData) {
      const regex = /^(?!0*(\.0+)?$)(?:\d+|\d{1,3}(?:,\d{3}){0,2})(?:\.\d{1,2})?$/
      return tableData.every(
        (item) =>
          item.chargeType !== '' &&
          item.unitPrice !== '' &&
          item.calculationUnit !== '' &&
          regex.test(item.unitPrice) &&
          parseFloat(item.unitPrice) > 0 &&
          parseFloat(item.unitPrice) < 1000000
      )
    },

数组对象 不能为空 并且找出哪一项是空的 

       submitForm () {
      return new Promise((resolve, reject) => {
        const validateForm = (formRef) => {
          return new Promise((resolve) => {
            formRef.validate((valid) => {
              resolve(valid)
            })
          })
        }

        Promise.all([
          validateForm(this.$refs.xianJieFormRef),
          validateForm(this.$refs.yueJieFormRef),
          validateForm(this.$refs.shuangYueJieFormRef),
          validateForm(this.$refs.qianShouFormRef)
        ]).then((results) => {
          this.qianShouForm.channelItemList.forEach((item) => {
            item.invoiceTimeMonthType2 ? delete item.invoiceTimeMonthType2 : ''
          })
          

          let bol = this.qianShouForm.channelItemList.every((obj, index) => {
            return Object.values(obj).every((value) => value !== '')
          })


          if (!bol) {
            let firstFailedObj = this.qianShouForm.channelItemList.find((obj, index) => {
              return Object.values(obj).some((value) => value === '')
            })
            
            if (firstFailedObj) {
              this.$message.error(
                `异常,签收结的【初始】生成规则【${firstFailedObj.channelTypeName}】数据不完整,请检查`
              )
              reject(new Error('异常,签收结的【初始】生成规则数据不完整,请检查'))
              return
            }
          }

          const isValid = results.every((valid) => valid)
          if (isValid) {
            let obj = {
              orgOwner: null,
              rules: []
            }
            obj.rules = [this.xianJieForm, this.yueJieForm, this.shuangYueJieForm, this.qianShouForm]
            resolve(obj) // 解析带有对象的Promise
          } else {
            this.$message.error('请将必填项填写完整')
            reject(new Error('表单校验失败了')) // 带有错误的Promise
          }
        })
      })
    },

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值