如何验证表单中动态添加的输入?

时间:2019-10-11 16:57:46

标签: laravel vue.js element-ui

我正在向表单中动态添加字段,但是我需要对它们进行验证,以确保它们不为空。这就是我以表格形式创建动态字段的方式

<div v-for="(option, index) in questionOptions" :key="index">
    <el-row>
        <el-col :span="22">
            <el-form-item prop="option">
                <el-input v-model="option.option"></el-input>
            </el-form-item>
        </el-col>
        <el-col :span="2">
            <div class="btn-link-delete action-button" @click="removeOption(index)"
                :disabled="trashDisabled">
                <i class="fas fa-trash-alt"></i>
            </div>
        </el-col>
    </el-row>
</div>

之所以这样做,是因为我希望在那里有两个选择,然后才能添加更多字段

questionOptions: [
{
    option: ''
},
{
    option: ''
},

我想在添加这些字段时对其进行验证,现在,如果我验证它们从未得到正确验证的正常方式,我会填写输入内容,并且它们显示为空,并且不允许我保存,即使输入不为空。我还希望前两个字段似乎是必需的并经过验证。并非我正在创建的每个项目都会包括这些动态添加的字段,只有一些。它们是问题,只有将问题设置为多项选择时,这些字段才是这些字段,这些字段用于创建用于回答的那些选择。

2 个答案:

答案 0 :(得分:0)

如果使用laravel's request class,则可以验证那里的所有字段以查看是否为空。 到目前为止,这是最简单,最可靠的方法。

这将在您的请求到达控制器之前对其进行验证,并允许您返回自定义错误。

您可能希望将所有动态添加的字段存储在嵌套数组中,以便您可以单独检查。

在“规则”部分,您将编写如下内容:

'dynamic_fields.*' => ['required']

希望这会有所帮助。

答案 1 :(得分:0)

我会给你我的想法

#