el-form-item中如何设置第一个el-input有红色星号后面的没有

<el-form-item
        v-for="(email, index) in noticeEmail"
        :label="'通知邮箱' "
        :key="email.key"
        :rules="index === 0 ?{
          required: true, message: '通知邮箱不能为空', trigger: 'blur'
        }: null"
      >
        <!-- <el-input v-model.trim="email.value" @blur="trim(email.value)"></el-input> -->
        <el-input v-model.trim="email.value" @blur="email.value = email.value.replace(/[\s\uFEFF]+/g, '')"></el-input>
        <!-- <el-input v-model="email"></el-input> -->
        <el-button @click.prevent="removeEmail(email)" v-show="index>=1"
          >删除</el-button
        >
      </el-form-item>

问:

<el-form-item

v-for="(email, index) in noticeEmail"

:label="'通知邮箱' "

:key="email.key"

:rules="index === 0 ?{

required: true, message: '通知邮箱不能为空', trigger: 'blur'

}: null"

>

<!-- <el-input v-model.trim="email.value" @blur="trim(email.value)"></el-input> -->

<el-input v-model.trim="email.value" @blur="email.value = email.value.replace(/[\s\uFEFF]+/g, '')"></el-input>

<!-- <el-input v-model="email"></el-input> -->

<el-button @click.prevent="removeEmail(email)" v-show="index>=1"

>删除</el-button

>

</el-form-item>上面的代码请更改成:只有第一个有红色的星号进行校验,后面的就不再有红色的星号,不再校验了,请写代码

回答:

可以在 el-form-item 中通过 v-if 条件渲染来实现不同的校验和标记。具体实现方法如下:

<template>
  <el-form :model="form" :rules="rules">
    <el-form-item
      v-for="(email, index) in noticeEmail"
      :label="'通知邮箱' "
      :key="email.key"
      :prop="index === 0 ? 'noticeEmail' : null"
      :rules="index === 0 ? { required: true, message: '通知邮箱不能为空', trigger: 'blur' } : null"
    >
      <el-input v-model.trim="email.value" @blur="email.value = email.value.replace(/[\s\uFEFF]+/g, '')"></el-input>
      <el-button @click.prevent="removeEmail(email)" v-show="index >= 1">删除</el-button>
      <span class="el-form-item__required" v-if="index === 0">*</span>
    </el-form-item>
  </el-form>
</template>
<script>
export default {
  data() {
    return {
      form: {
        noticeEmail: [{ key: 1, value: '' }],
      },
      rules: {
        noticeEmail: [{ required: true, message: '通知邮箱不能为空', trigger: 'blur' }],
      },
    };
  },
  computed: {
    noticeEmail() {
      return this.form.noticeEmail;
    },
  },
  methods: {
    removeEmail(email) {
      const index = this.noticeEmail.indexOf(email);
      if (index !== -1 && this.noticeEmail.length > 1) {
        this.noticeEmail.splice(index, 1);
      }
    },
  },
};
</script>

重点:上面的 :rules进行了index的判断

效果:点击添加邮箱后的输入框不再有红色星号

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值