【发布时间】:2020-12-20 10:03:11
【问题描述】:
我使用 Quasar 框架。我创建了一个步进器,在每个步骤中我都有几个字段。有些是必需的 像这样:
<q-stepper dense v-model="step" ref="stepper" color="primary" animated header-nav>\
<q-step dense :name="1" title="Infos générales" icon="settings" :done="step > 1" :error="step < 3">
<q-card-section class="q-pt-none">
<div class="q-col-gutter-x-md">
<q-input class="full-width" dense v-model="infos.motif" label="Raison *" hint="Détaillez la raison. * Champs requis" :rules="Required"></q-input>
</div>
</q-card-section >
</q-step>
<q-step dense :name="2" title="Mise en copie" icon="assignment" :done="step > 2" >
<q-card-section class="q-pt-none" >
<div class="row items-start content-start" >
<div class="text-subtitle2">A la demande</div>
<selectusers v-bind:users="users" v-bind:model.sync="infos.copiedemande"></selectusers>
</div >\
</q-card-section >
</q-step>
<template v-slot:navigation>
<q-stepper-navigation >
<q-btn v-if="step > 1" flat color="primary" @click="$refs.stepper.previous()" label="Retour" />
<q-btn @click="$refs.stepper.next()" color="primary" :label="step === 2 ? \'Fini\' : \'Continuer\'" class="float-right"/>
</q-stepper-navigation >\
</template >\
</q-stepper>
Required 是一个计算出来的:Required() { return [(v) => !!v || 'Saisissez quelque 选择了 :-)'] }, 如果我不填写 infos.motif 字段,我希望在更改步骤时第一步显示错误
我没有找到如何链接 :error from step 到 rules from field 感谢您的指导
更新1 我在第一页添加了一个带有 ref 的表单。
<q-stepper dense v-model="step" ref="stepper" color="primary" animated header-nav>
<q-step dense :name="1" ref="step1" title="Infos générales" icon="settings" :done="step > 1" :error="checkform1()">
<q-form ref="myForm1">
其中 checkform1 是一个方法
checkform1() { return this.$refs.stepper ? this.$refs.stepper.$refs.step1.$refs.myForm1.validate() : true; }
但我无法访问我的表单。当我有 this.$refs.stepper 时,$ref 是空的...... UPDATE2 我在 codepen here 上创建了一个示例
【问题讨论】:
标签: javascript vue.js quasar-framework quasar stepper