VUE动态新增表单&对表单进行校验

1、html

<el-tabs
            v-model="editableTabsValue"
            type="card"
            closable
            @tab-remove="removeDispatchFn"
            @tab-click="clickDispatchFn"
          >
            <el-tab-pane
              v-for="(item, index) in dispatchForm.moreNotifyObject"
              :key="item.name"
              :name="item.name"
            >
              <div class="dispatchRulesIn">
                <el-col :lg="24">
                  <el-form-item
                    label="执法大队:"
                    :prop="'moreNotifyObject.' + index +'.enforceTeam'"
                    :rules="rules.enforceTeam"
                  >
                    <el-input v-model="item.enforceTeam" placeholder="请输入执法大队" />
                  </el-form-item>
                </el-col>
                <el-col :lg="24">
                  <el-form-item
                    label="执法人:"
                    :prop="'moreNotifyObject.'+ index +'.enforceName'"
                    :rules="rules.enforceName"
                  >
                    <el-input v-model="item.enforceName" placeholder="请输入执法人姓名" />
                  </el-form-item>
                </el-col>
                <el-col :lg="24">
                  <el-form-item label="联系电话:" :prop="'moreNotifyObject.'+ index +'.phone'" :rules="rules.phone">
                    <el-input v-model="item.phone" placeholder="请输入执法人联系电话" />
                  </el-form-item>
                </el-col>
              </div>
            </el-tab-pane>
          </el-tabs>

2、JS&逻辑

dispatchForm: {
  moreNotifyObject: [{
    enforceTeam: '',
    enforceName: '',
    phone: '',
    name: '0'
  }]
},

      // 验证
rules: {
  enforceTeam: [{ required: true, message: '请输入执法大队', trigger: 'change' }],
  enforceName: [{ required: true, message: '请输入执法人', trigger: 'change' }],
},
//动态新增按钮
 addDispatchFn(targetName) {
    const newTabName = ++this.tabIndex + ''
    this.dispatchForm.moreNotifyObject.push({
      enforceTeam: '',
      enforceName: '',
      phone: '',
      name: newTabName
    })
  },
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Ant Design Vue 是一个非常受欢迎的 UI 组件库,它提供了丰富的表单组件,包括输入框、下拉选择框等等。要实现动态添加表单必填校验,可以按照以下步骤进行操作: 1. 首先,引入 Ant Design Vue 的 Form 组件和相应的验证规则模块,例如 `required` 必填规则。 2. 在 Vue 的 data 中定义一个表单对象,包含需要动态添加的表单控件的值。 3. 在模板中使用 Ant Design Vue 的 Form 组件,并使用 v-model 指令将表单对象和控件的值进行绑定。 4. 使用 v-for 指令遍历需要动态添加的表单控件,通过一个数组来提供控件的模板。 5. 在表单控件的模板中,使用 :rules 属性绑定验证规则,例如 `:rules="[{ required: true, message: '该字段为必填项' }]` 6. 在模板中提供一个按钮或其他交互方式,用来触发动态添加表单控件的操作。 7. 当点击按钮时,通过修改表单对象的属性或者添加新的属性,实现动态添加表单控件。 8. 提交表单时,通过调用 validate 方法对表单进行校验,这会触发相关的验证规则。 9. 根据校验结果,可以在模板中展示错误信息或者处理其他逻辑。 需要注意的是,动态添加表单必填校验时,需要在动态添加表单控件的同时,将相应的验证规则也添加到表单对象中。另外,为了方便校验和错误信息的展示,建议使用对应的验证规则模块和提示文本。 这样,通过上述步骤,就可以实现 Ant Design Vue 动态添加表单必填校验了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值