我试图结合这两个功能:

function validateForm() {
        var x = document.forms["form1"]["condition1"].value;
        var y = document.forms["form1"]["condition2"].value;
        var z = document.forms["form1"]["condition3"].value;

        if (x == null || x == "") {
        alert("Please enter a 'condition1' value");
        return false;
        }

        if (y == null || y == "") {
        alert("Please enter a 'condition2' value");
        return false;
        }
        if (z == null || z == "") {
        alert("Please enter a 'condition3' value");
        return false;
        }
    }

// Form Validation for pages with no 'condition2' option

    function validateForm2() {
        var x = document.forms["form1"]["condition1"].value;
        var z = document.forms["form1"]["condition3"].value;

        if (x == null || x == "") {
        alert("Please enter a 'condition1' value");
        return false;
        }
        if (z == null || z == "") {
        alert("Please enter a 'condition3' value");
        return false;
        }
    }


validateForm()检查是否已将condition1,condition2和condition3成功输入到Form1中,如果未成功,则通知用户。

使用Form1的某些页面没有条件2。

从目前的角度来看,没有“ condition2”输入的页面将无法正常工作。一个很简单的解决方法是使一个几乎相同的函数validateForm2()省略“ condition2”。然后,我必须仔细检查并排序哪些页面需要哪个功能。

<form name="form1" onsubmit="return validateForm()">


要么

<form name="form1" onsubmit="return validateForm2()">


我试图看看是否可以通过仅当'condition2'实际上在页面上时才需要将两个功能结合起来。

最佳答案

您只能使用一个validateForm函数

function validateForm() {
    var isPresentCond2 = document.forms["form1"]["condition2"],
        x = document.forms["form1"]["condition1"].value,
        y,
        z = document.forms["form1"]["condition3"].value;

    if (x == null || x == "") {
    alert("Please enter a 'condition1' value");
    return false;
    }
    if (isPresentCond2) {
        y = document.forms["form1"]["condition2"].value;
        if (y == null || y == "") {
            alert("Please enter a 'condition2' value");
            return false;
        }
    }
    if (z == null || z == "") {
    alert("Please enter a 'condition3' value");
    return false;
    }
}

09-26 02:04