如何使用 for 循环和错误数组实现表单验证
How to implement form validation using a for loop and an array for errors
我想在单击按钮时检查输入是否为空。如果其中一个输入为空,我将过滤一个数组。我正在尝试为错误向数组添加一个错误,我的任务是我只需要为那些为空的输入添加一个错误,但问题是即使对于那些不为空的输入也会添加错误。
<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")
你可以看看这个code in codesandbox你可以在输入中写点东西按删除后按按钮再按你会看到一切正常, 如果能帮上忙我会很高兴
https://codesandbox.io/s/happy-sun-8z8xg
我把p改成在div里面,只显示那个索引的错误
<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>
我应用了@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();
},
我想在单击按钮时检查输入是否为空。如果其中一个输入为空,我将过滤一个数组。我正在尝试为错误向数组添加一个错误,我的任务是我只需要为那些为空的输入添加一个错误,但问题是即使对于那些不为空的输入也会添加错误。
<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")
你可以看看这个code in codesandbox你可以在输入中写点东西按删除后按按钮再按你会看到一切正常, 如果能帮上忙我会很高兴
https://codesandbox.io/s/happy-sun-8z8xg
我把p改成在div里面,只显示那个索引的错误
<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>
我应用了@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();
},