如何解决循环函数内的 Javascript 验证
你好,更有经验的 JavaScript 患者 :)
供您测试表单: https://pro.formview.io/#/iisqnchhqsvcpgy/validationlooptest
我用 form.io...
在这种形式中,用户选择一个任务、一个动作和一个商品(货物)并将其添加到表中(changes_EditGrid)。 一旦用户选择在表格中多次使用相同的任务、操作和商品组合,验证就会显示错误消息(valid =“已分配选择。”;)。
验证:
simplegraphClient
任务: 现在我想从上面显示的验证循环中排除“editGrid_Goods_Select”内的“其他商品”(标签)(值:4)。 这样就不会对与多个“其他商品”的任何组合进行验证。
进一步解释:
- 'data.changes_EditGrid' 是一个数组
- editGrid_Goods_Select、editGrid_Actions_Select 和 editGrid_Tasks_Select 的值分别为 0 到 2、3 或 4(editGrid_Goods_Select 的 JSON 就在下面)
- 验证代码周围有一个不可见的“任何点击循环”
if (Array.isArray(data.changes_EditGrid)) {
let assigned = data.changes_EditGrid;
for (var i = 0; i < assigned.length; i++) {
for (var j = 0; j < assigned.length; j++) {
if (i === j) {
continue;
}
let tasks1 = assigned[i].editGrid_Tasks_Select;
let tasks2 = assigned[j].editGrid_Tasks_Select;
let goods1 = assigned[i].editGrid_Goods_Select;
let goods2 = assigned[j].editGrid_Goods_Select;
let action1 = assigned[i].editGrid_Actions_Select;
let action2 = assigned[j].editGrid_Actions_Select;
if (tasks1 == tasks2) {
if (goods1 == goods2) {
if (action1 == action2) {
valid = "The selection has been already assigned.";
}
}
}
}
}
}
我已经尝试为“goods”的新循环创建一个函数,但是一旦我使用 return 语句,框架似乎就把我踢出了循环。但实际上我不知道为什么它不起作用。
请帮帮我。
解决方法
不清楚 function BlahBlah() {
const [image,setImage] = React.useState(undefined);
const handleOnChangeFile = (event) => {
const imgFile = event.target.files[0];
const reader = new FileReader();
reader.addEventListener("loadend",(val) => {
setImage({
file: imgFile,blob: val.srcElement.result
});
});
reader.readAsDataURL(imgFile);
};
const handleSubmit = () => {
if (image) {
const formData = new FormData();
formData.append("IMAGE",image.file);
console.log("FormData:",formData.get("IMAGE"));
console.log("base-64 encoded blob:",image.blob);
//here you can use XHR/Axios to upload image,e.g:
/*
axios.post("/file-uploader",(formData OR image.blob));
*/
}
};
return (
<div>
<h1>take a look into console!</h1>
<input type="file" onChange={handleOnChangeFile} />
<button disabled={image ? false : true} onClick={handleSubmit}>
Submit!
</button>
</div>
);
}
和 goods1
包含什么类型的数据,所以让我们假设它们包含值“0”或“3”等。
考虑到这一点,我们可以简单地检查这些变量是否包含“其他”值“4”,如果是,则跳过检查并继续循环:
goods2
这也可以集成到其余条件中:
if (goods1 == "4" || goods2 == "4")
continue;
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。