【问题标题】:How to set conditional rules and required fields in vue?vue中如何设置条件规则和必填字段?
【发布时间】:2020-06-03 16:39:48
【问题描述】:

我正在尝试使几个字段有条件地需要。但我无法让它发挥作用。我已经设置了一个数据字段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>

【问题讨论】:

    标签: javascript vue.js vuetify.js


    【解决方案1】:

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

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

    【讨论】:

    • 无效的道具:道具“规则”的类型检查失败。预期的数组,得到字符串。这是我现在遇到的错误
    • 哎呀,是的,传递的是空字符串,而是传递一个空数组:rules="notRequired ? 'nameRules' : []"
    猜你喜欢
    • 1970-01-01
    • 2012-08-07
    • 1970-01-01
    • 2018-01-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-24
    • 1970-01-01
    相关资源
    最近更新 更多