- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试在 vuejs 中使用 veeValidate 生成带有验证的动态表单,我尝试这样做的方式是在组件数据中创建一个对象数组,例如:
data(){
return{
inputs: [
{
id: 1,
label: "first name",
type: "text",
placeholder: "",
model: "",
rules: "required"
},
{
id: 2,
label: "last name",
type: "text",
placeholder: "",
model: "",
rules: "required"
} ]
}
}
对于 html:
<ValidationObserver v-slot="{ handleSubmit }">
<b-form @submit.prevent="handleSubmit(onSubmit)" class="p-5">
<div v-for="inp in inputs" v-bind:item="inp" :key="inp.id">
<ValidationProvider name="Value" :rules="inp.rules" v-slot="validationContext">
<b-form-group
:id="'input-group-'+inp.id"
:label="inp.label"
:label-for="'input-'+inp.id"
label-cols="4"
label-cols-lg="2"
>
<div v-if="inp.type != 'select'">
<b-form-input
:type="inp.type"
:placeholder="inp.placeholder"
v-model="inp.model"
:id="'input-'+inp.id"
:name="'input-'+inp.id"
:state="getValidationState(validationContext)"
aria-describedby="input-1-live-feedback"
></b-form-input>
<b-form-invalid-feedback
:id="'input-'+inp.id+'-live-feedback'"
>{{ validationContext.errors[0] }}</b-form-invalid-feedback>
</div>
</b-form-group>
</ValidationProvider>
</div>
<button type="submit">Submit</button>
</b-form>
<div>
Look at the output
{{show}}
</div>
</ValidationObserver>
这在尝试在 html 上动态生成输入时效果很好。但是当我尝试向该动态表单添加表单验证时,问题就来了。我期望/想要做的事情:假设表单有一个提交按钮,如果输入有“必需”验证,我期望发生的事情是,如果我没有先输入任何内容就按下按钮,所有输入都应该显示警告说“需要此输入”或类似的内容。
问题:真正发生的是,当您在没有输入任何内容的情况下按下提交按钮时,只有最后一个输入显示警告消息。
这是我正在谈论的示例的 codeSandbox 链接: https://codesandbox.io/s/codesandbox-733yf?fontsize=14&hidenavigation=1&theme=dark&file=/src/Demo.vue
最佳答案
当您在 v-for
中工作时,最佳做法(显然是必要的)使用 vid
标识您的 ValidationProvider
,像这样:
<ValidationProvider :vid="'vp'+inp.id" name="Value" :rules="inp.rules" v-slot="validationContext">
当我将它添加到您的示例时,我能够看到您所有的错误消息。
关于javascript - VeeValidate 不验证来自动态表单的输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61977867/
我正在尝试在 vuejs 中使用 veeValidate 生成带有验证的动态表单,我尝试这样做的方式是在组件数据中创建一个对象数组,例如: data(){ return{ inputs: [
我想知道是否可以将多个密码要求传递给 VeeValidate 以显示用户缺少哪些要求。 例如,如果我们要求用户的密码至少包含一个大写字母和至少一个数字且长度至少为 5 个字符,并且用户输入“a1bb”
我一直在努力让它发挥作用,但我还没有找到解决方案。我已经阅读了有关 VeeValidate 动态字段的信息,但它也没有帮助。我有以下错误: 未捕获( promise )错误:[vee-validate
如何在规则之间使用多范围或包含 VeeValidate ? 我想验证 1-15 和 100 等式。5有效50无效100有效 我试试 rule. Between = [[1,15],100];不起作用,
我刚刚开始在我的项目中使用 vee-validate。我的组件中有以下代码,其中是带有验证的简单表单组
我正在使用 VeeValidate 创建自定义验证规则。官方文档对 getMessage 和 validate 方法使用箭头函数。如何用常规函数语法实现这些函数? VeeValidate.Valida
我找不到实现此方法的指南。您如何将数据添加到父组件的错误包中,并监听子组件的特定错误以有条件地显示某些内容? 我已将错误添加到 parent 组件的错误包中,如下所示: export default
我正在尝试从计算的 prop 访问验证标志: computed: { isFormValid() { let isValid = this.$validator.fields.some(f
我找到了一个 jsfiddle 示例,我 fork 然后进行了编辑。我不明白发生了什么或如何解决它。在我的示例中,我使用了带有值的复选框,但是当我单击一个复选框时,该值会更改为 true 或 fals
我正在尝试在密码验证提供程序上添加 vee-validate 规则并确认密码。 v-validate 必须在我必须向文本框添加规则的地方工作。但就我而言,我必须使用验证提供程序。请帮忙!!! 版本 v
我使用了文档中的语法规则 required_if: vee-validate required_if rule它不起作用。 有人能指出我正确的方向吗?在我继续之前,我需要这个简单的 required_
我正在使用 VeeValidate验证用户在我的 vue 组件中的输入。问题是当用户开始将数据输入到字段时,它会立即验证字段。 在这里,即使我没有完成输入我的电子邮件,它也显示无效电子邮件。 我该如何
我写了一个这样的自定义验证器: created () { this.$validator.extend('validateCert', { getMes
版本: VueJs:2.2.2 Vee-验证:2.0.0-beta.25 描述: 我想知道是否有办法为多个字段设置一个唯一的验证器? 通常,一个地址表单有 1 个输入街道,1 个数字和 1 个城市 我
我的需求是这样的。 我必须输入字段来验证用户输入。 当用户填写字段并点击提交按钮时,在提交之前我想显示所有错误消息。 如果用户数据没有错误,应该提交 这是我的代码。 Add Ite
当 VeeValidate拾取一个无效字段,它使用字段名称输出错误,例如。 The address_line_1 field is required. 是否可以在错误消息中使用字段标签或其他属性,因为
我已尝试通过以下方式验证我的输入: 但如果我像这样填写输入,它会返回 true:google.com,所以如果我像这样填写 http://exampleURL.com,我需要验证返回 true (使
我能够很好地使用规则,但我必须在每个组件中都有它们,这不是 DRY 而是杂乱无章。我要加rules.js用于验证的文件,但是在文件中您只是扩展了一个类,所以我不确定如何在将文件导出和导入到组件中或使它
如何更改验证错误时显示的“名称”。我知道我可以使用属性“名称”对其进行调整,但我想保留它的原样,以便将其与来自后端的验证错误相匹配。我不想将后端的属性名称更改为描述性的名称。为了让用户更好地理解,我想
好的,情况是这样的,我正在使用 Vue.js 开发 SPA。我在我的组件之一中使用 VeeValidate,在 Component1.vue 中这样说, import Vue from 'vue';
我是一名优秀的程序员,十分优秀!