Avue填写一个字段后,其他字段变为必输字段或者变为下拉列表或不可输入

<template>
  <avue-form :option="formOption" v-model="formData" @change="handleChange"></avue-form>
</template>
 
<script>
export default {
  data() {
    return {
      formOption: {
        // 表单配置
        formItems: [
          {
            label: "字段A",
            prop: "fieldA",
            rules: [{ required: true, message: "请输入字段A的值", trigger: "blur" }]
          },
          {
            label: "字段B",
            prop: "fieldB",
            rules: [{ required: false, message: "请输入字段B的值", trigger: "blur" }]
          },
          {
            label: "字段C",
            prop: "fieldC",
            rules: [{ required: false, message: "请输入字段C的值", trigger: "blur" }]
          }
        ]
      },
      formData: {}
    };
  },
  methods: {
    handleChange(form, field, value) {
      if (field === "fieldA" && value) {
        // 当字段A有值时,字段B和字段C变为必输
        this.formOption.formItems.find(item => item.prop === "fieldB").rules = 
          [{ required: true, message: "请输入字段B的值", trigger: "blur" }];
        this.formOption.formItems.find(item => item.prop === "fieldC").rules = 
          [{ required: true, message: "请输入字段C的值", trigger: "blur" }];
      } else {
        // 当字段A的值消失时,恢复字段B和字段C的原始规则
        this.formOption.formItems.find(item => item.prop === "fieldB").rules = 
          [{ required: false, message: "请输入字段B的值", trigger: "blur" }];
        this.formOption.formItems.find(item => item.prop === "fieldC").rules = 
          [{ required: false, message: "请输入字段C的值", trigger: "blur" }];
      }
    }
  }
};
</script>

在Avue框架中,可以通过监听某个字段的值变化,然后动态修改其他字段的规则来实现这个需求。

注意:当改变一个字段属性时,需要在option中有对应属性初始化

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值