微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

循环函数内的 Javascript 验证

如何解决循环函数内的 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 举报,一经查实,本站将立刻删除。