首页 > 解决方案 > JavaScript - 函数未按预期工作

问题描述

我有这两个函数来测试在我的表单上是否有 4 行元素(每行有 4 个文本框和两个单选按钮)是“完整的”。

Complete 为 1-3 行已满,其余为空,或 4 行均已满且无空。

如果第 1 行未完全填满,其余为空,则表示不完整。

如果第 1 行已满而第 2 行未满,则说明它不完整,依此类推。

现在,这些功能表示当至少 1 行已填满时表格已完成,无论其余行是否未填满。

这段代码有错误吗?我尝试了许多不同的修复方法,但似乎都没有奏效——我想知道我的逻辑是否错误。

function lineIsComplete(i) {
    let lastName = document.getElementById("txtChildsPlacementChild" + i + "LastName");
    let firstName  = document.getElementById("txtChildsPlacementChild" + i + "FirstName");
    let caseNumber = document.getElementById("txtChildsPlacementChild" + i + "CaseNumber");
    let birthDate  = document.getElementById("txtChildsPlacementChild" + i + "BirthDate");
    let apprehended = document.getElementById("rdoChildsPlacementChild" + i + "StatusApprehended");
    let remainHome  = document.getElementById("rdoChildsPlacementChild" + i + "StatusWillRemainInTheHome");

    if (lastName != '' && firstName != '' && caseNumber != '' && birthDate != '' &&
       (apprehended.checked || remainHome.checked)) {
        return true;
    } else if (i != 1 && lastName == '' && firstName == '' && caseNumber == '' && birthDate == '' &&
        (!apprehended.checked || !remainHome.checked)) {
        return true;
    }

    return false;
}

function section4Complete() {
    for (let i=1; i++; i<=4) {
        if (!lineIsComplete(i)) {
            return false;
        } else {
            continue;
        }
    }

    return true;
}

谢谢。

标签: javascriptfor-loopif-statement

解决方案


推荐阅读