Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vue.js/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Vuelidate在使用动态输入时未按预期工作_Javascript_Vue.js_Vuelidate - Fatal编程技术网

Javascript Vuelidate在使用动态输入时未按预期工作

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">

我正在Vue应用程序中使用该包进行表单验证。这对于所有基本表单都非常有效,但我有一个表单可以根据服务器返回的内容生成动态表单输入

这是我的表格:

<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
字段应用了验证