javascript - 如何使用 for 循环和错误数组实现表单验证
问题描述
我想在按钮单击时检查输入是否为空。如果其中一个输入为空,我正在过滤一个数组。我正在尝试将错误添加到数组中以查找错误,我的任务是我只需要为那些为空的输入添加错误,但问题是即使对于那些不为空的输入也会添加错误。
<template>
<form>
<div v-for="(learning, i) in general.learnings" :key="i">
<input
type="text"
v-model="general.learnings[i]"
maxlength="120"
/>
</div>
<p
style="background: red"
v-for="(i, index) in errorList"
:key="'A' + index"
>
{{ i }}
</p>
<button @click="save">Save</button>
</form>
</template>
<script>
export default {
methods: {
save(e) {
this.general.learnings.filter((e, index) => {
if (!e[index]) {
this.errorList.push("Error")
} else if (e[index] !== "") {
this.errorList = [""];
}
});
e.preventDefault();
},
},
data() {
return {
errorList: [],
general: {
learnings: ["", ""],
},
};
},
};
</script>
我认为问题在于this.errorList.push("Error")
您可以在代码和框中查看此代码您可以在输入中写一些内容按删除后按按钮并再次按您会看到一切正常,如果有帮助我会很高兴
解决方案
我应用了@flaxon 代码,其中错误只会显示在我的索引中,然后我稍微更改了save
方法内的验证检查
<div v-for="(learning, i) in general.learnings" :key="i">
<input type="text" v-model="general.learnings[i]" maxlength="120" />
<p style="background: red" :key="'A' + index">
{{ errorList[i] }}
</p>
</div>
save(e) {
this.errorList = [];
this.general.learnings.filter((e, index) => {
if (e === "") {
this.errorList.push("Error");
} else {
return true;
}
});
e.preventDefault();
},
推荐阅读
- javascript - 切换组件在 PartialView 中不起作用 - Asp.Net MVC
- file - SSIS 平面文件 csv 目标是 bcp csv 导出大小的两倍
- ruby-on-rails - 我可以在 rails db 中为特定字段添加时间戳吗?
- python - Matplotlib - 3D 图形只工作一次
- php - Facebook PHP API在登录时抛出异常
- python - 使用用户输入字符串中的不等式
- jquery - jQuery 闪词
- algorithm - 生成总和为 n 的随机数
- python - 如何使用 Bio.PDB.Selection 仅展开蛋白质原子?
- react-native - Switch Navigator 两个标题