vue中iview组件实现表单数据的动态校验

1.实现原理

  • iview组件库Form表单, ref=“formValidate”,:model=“formInline”,:rules=“ruleValidate”。
  • 选择审核结果的时候动态的设置备注的规则,当为通过为非必填,反之为必填。
  • 为备注项设置相应的动态rule:
:rules="formInline.status == '2'? ruleValidate.remark: [{ required: false }]"

2.实现代码

<template>
  <div class="content">
    <Card>
      <p slot="title">表单动态校验</p>
      <Form
        :label-width="100"
        ref="formValidate"
        :model="formInline"
        :rules="ruleValidate"
      >
        <FormItem label="表单校验:" prop="status">
          <Select
            v-model="formInline.status"
            placeholder=""
          >
            <Option value="1">条件1</Option>
            <Option value="2"</
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以通过在子组件使用`v-model`指令,并将父组件表单校验状态作为`v-model`的绑定值,来避免父组件表单校验触发子组件的输入框。具体步骤如下: 1. 在父组件定义表单校验状态,并将其作为`v-model`的绑定值传递给子组件。 2. 在子组件使用`v-model`指令绑定输入框的值,并将其绑定到子组件数据属性上。 3. 在子组件使用`watch`监听父组件传递的表单校验状态,当表单校验状态发生变化时,根据需要进行相应的处理。 下面是一个示例代码: ```vue <!-- 父组件 --> <template> <div> <form> <child-component v-model="formValid"></child-component> <button @click="validateForm">校验表单</button> </form> </div> </template> <script> import ChildComponent from './ChildComponent.vue'; export default { components: { ChildComponent }, data() { return { formValid: false }; }, methods: { validateForm() { // 校验表单逻辑 } } }; </script> <!-- 子组件 --> <template> <div> <input v-model="inputValue" type="text"> </div> </template> <script> export default { props: ['value'], data() { return { inputValue: '' }; }, watch: { value(newValue) { // 根据父组件传递的表单校验状态进行相应的处理 } } }; </script> ``` 在上述示例,父组件通过`v-model`将表单校验状态`formValid`传递给子组件,并在子组件使用`watch`监听`value`属性的变化。当父组件表单校验状态发生变化时,子组件可以根据需要进行相应的处理,例如禁用输入框或显示错误提示信息。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值