Javascript Vuelidate在使用动态输入时未按预期工作
我正在Vue应用程序中使用该包进行表单验证。这对于所有基本表单都非常有效,但我有一个表单可以根据服务器返回的内容生成动态表单输入 这是我的表格:Javascript Vuelidate在使用动态输入时未按预期工作,javascript,vue.js,vuelidate,Javascript,Vue.js,Vuelidate,我正在Vue应用程序中使用该包进行表单验证。这对于所有基本表单都非常有效,但我有一个表单可以根据服务器返回的内容生成动态表单输入 这是我的表格: <template> <div> <form v-on:submit.prevent="onSubmit"> <fieldset> <div v-for="input in inputList" :key="input.label">
<template>
<div>
<form v-on:submit.prevent="onSubmit">
<fieldset>
<div v-for="input in inputList" :key="input.label">
<input :type="input.type" v-model="form[input.detail]" :placeholder="input.label">
<div v-if="submitted && !$v.form[input.detail].required" class="invalid-feedback">{{input.label}} is required</div>
</div>
</fieldset>
<input id="form-submit" type="submit">
</form>
</div>
</template>
{input.label}是必需的
这是我的表格数据:
<script>
import { required } from "vuelidate/lib/validators";
export default {
name: "HelloWorld",
data() {
return {
inputList: [
{ detail: "player_points", type: "number", label: "Player Points" },
{ detail: "player_rebounds", type: "number", label: "Player Rebounds" }
],
form: {
player_points: null,
player_rebounds: null
},
submitted: false
};
},
validations() {
return {
form: {
player_points: { required }
}
};
},
methods: {
onSubmit: function() {
this.submitted = true;
this.$v.$touch();
if (this.$v.$invalid) {
return;
}
}
}
};
</script>
从“vuelidate/lib/validators”导入{required};
导出默认值{
名称:“HelloWorld”,
数据(){
返回{
输入列表:[
{详情:“玩家点数”,类型:“数字”,标签:“玩家点数”},
{详情:“球员篮板”,类型:“数字”,标签:“球员篮板”}
],
表格:{
玩家点数:空,
球员篮板:零
},
提交:假
};
},
验证(){
返回{
表格:{
玩家积分:{必选}
}
};
},
方法:{
onSubmit:function(){
this.submitted=true;
这个。$v.$touch();
如果(本$v.$无效){
返回;
}
}
}
};
正如你所看到的,我试图只验证球员得分
场,而不是球员篮板
场,但我遇到了一个问题。如果我尝试验证这两种方法,效果会很好
下面是示例代码:
你可以复制我在这里看到的问题
期望的结果。
只有Player Points
字段应用了验证