重置 Vuetify 表单验证

新手上路,请多包涵

我无法在 v-dialog 中重置 vuetify 验证。

这个codepen是我所拥有的简化版本。

https://codepen.io/yuukive/pen/BVqpEZ

使用上面的代码,如果我这样做

(打开对话框->按保存按钮->(验证失败)->按关闭按钮->再次打开对话框),

当我再次打开对话框时,它已经被验证…

是否可以在用户第二次打开验证之前重置验证?

 new Vue({
  el: '#app',
  data: () => ({
    dialog: false,
    emailRules: [v => !!v || 'Name is required']
  }),
  methods: {
    onSave() {
      if (!this.$refs.form.validate()) return
      dialog = false
    }
  }
})

 <div id="app">
  <v-app id="inspire">
    <v-layout row justify-center>
      <v-dialog v-model="dialog" persistent max-width="500px">
        <v-btn slot="activator" color="primary" dark>Open Dialog</v-btn>
        <v-card>
          <v-card-title>
            <span class="headline">Email</span>
          </v-card-title>
          <v-form ref="form">
            <v-card-text>
              <v-container grid-list-md>
                <v-layout wrap>
                  <v-flex xs12>
                    <v-text-field label="Email" required :rules="emailRules"></v-text-field>
                  </v-flex>
                </v-layout>
              </v-container>
              <small>*indicates required field</small>
            </v-card-text>
            <v-card-actions>
              <v-spacer></v-spacer>
              <v-btn color="blue darken-1" flat @click.native="dialog = false">Close</v-btn>
              <v-btn color="blue darken-1" flat @click.native="onSave">Save</v-btn>
            </v-card-actions>
          </v-form>
        </v-card>
      </v-dialog>
    </v-layout>
  </v-app>
</div>

原文由 sora 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.3k
2 个回答

文档中的 示例 使用:

this.$refs.form.reset()

请注意,当 reset() 清除验证时,它也会清除输入。

您可以关注 此问题 以查看有关此的进一步更新。

因此,您也许可以观看对话框值并重置表单:

 watch: {
    dialog() {
        this.$refs.form.reset()
    }
}

原文由 Traxo 发布,翻译遵循 CC BY-SA 4.0 许可协议

resetValidation() 只会清除验证错误, reset() 也会清除输入字段。

原文由 ego 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题