javascript - vue中如何设置条件规则和必填字段?

标签 javascript vue.js vuetify.js

我正在尝试使少数字段有条件地需要。但我无法让它发挥作用。我设置了一个数据字段 notRequired: false并基于此,我在字段中使用它作为 :required="!notRequired"使这些字段成为不需要的,因为在某些情况下我需要这些字段,而在某些情况下我不需要,因为我试图有条件地设置它。问题是由于添加到字段中的规则,错误消息仍然出现。有没有办法让规则也有条件?

<template>
 <v-text-field
  label='Agency Name'
  v-model='agency.name'
  :rules='nameRules'
  :required="!notRequired"
  required>
 </v-text-field>
 <v-text-field
  label='Agency Code'
  :rules='codeRules'
  :required="!notRequired"
  v-model='agency.code'>
 </v-text-field>
 <v-text-field
  label='Agency location'
  :rules='locationRules'
  :required="notRequired"
  v-model='agency.location'>
 </v-text-field>
</template>

<script>
 export default {
  data: function () {
    return {
      notRequired: false,
      agency: {
        name: '',
        code: '',
        location: '',
      }
      nameRules: [
        value => !!value || 'Please enter name'
      ],
      codeRules: [
        value => !!value || 'Please enter code'
      ],
      locationRules: [
        value => !!value || 'Please enter location'
      ],
    }
  }
 }
</script>

最佳答案

您可以使用 ternary运算符有条件地添加规则,具体取决于 notRequired 的值:

 <v-text-field
   label="Agency Name"
   v-model="agency.name"
   :rules="notRequired ? 'nameRules' : []" <!-- HERE -->
   :required="!notRequired">
 </v-text-field>

关于javascript - vue中如何设置条件规则和必填字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62178081/

相关文章:

vue.js - <v-carousel-item>中的本地镜像渲染不起作用,但在线图像链接有效

javascript - 用于解析可能用引号表示的参数的正则表达式

javascript - Vue.js 输入值不反射(reflect)组件数据中的值

javascript - 在使用 vue cli 3 创建的项目中,在哪里可以找到或如何设置 htmlWebpackPlugin.options.title?

javascript - 如何在 nuxt 中使用 Axios 模块和 vuejs 设置 header

Vue.js vuetify js 日历不显示日事件

javascript - 获取 v-checkbox 的状态 Vue.JS Vuetify

javascript - CasperJS 循环无法正确评估,显然只是直接运行

javascript - 多个 $http promise 使用工厂, Angular

javascript - 获取 href onclick 并使用链接重定向