Javascript 第一个函数必须在调用第二个函数之前完成

Javascript 第一个函数必须在调用第二个函数之前完成,javascript,Javascript,在我的示例中,有三个函数必须在转到下一个函数之前完全执行。我知道我可以将第二个函数放在第一个函数中,等等,但我需要灵活地以各种顺序执行函数 在做研究时,我似乎需要做一个“回调”,但不知道如何将其应用于我的情况。这是我到目前为止所拥有的。当然,它是通过所有这三个功能,而不停止,除了警报。有人能帮助我吗?或者至少给我指出我应该考虑的方向? <!DOCTYPE html> <html> <body> <h3>Validates Input Val

在我的示例中,有三个函数必须在转到下一个函数之前完全执行。我知道我可以将第二个函数放在第一个函数中,等等,但我需要灵活地以各种顺序执行函数

在做研究时,我似乎需要做一个“回调”,但不知道如何将其应用于我的情况。这是我到目前为止所拥有的。当然,它是通过所有这三个功能,而不停止,除了警报。有人能帮助我吗?或者至少给我指出我应该考虑的方向?

<!DOCTYPE html>
<html>
<body>
    <h3>Validates Input Values</h3>
    <form name='checkout_form'>
        <table id="table_form">
            <tr>
                <td>First Name:</td>
                <INPUT type="text" id="xFirstName" STYLE="color: #3366CC; text-align: left; font-family: Times; font-size: 12px; background-color: transparent; border:dotted; border-color:#7b0000; border-width:1px; width:180px" name="first_name" value="" size="14" onKeyup="autotab(this,document.donate_form.last_name)"
                    maxlength=14 onkeypress="return inputLimiter(event,'NameCharacters')">
                </td>
            </tr>
            <tr>
                <td>Last Name:</td>
                <td>
                    <INPUT type="text" id="xLastName" STYLE="color: #3366CC; text-align: left; font-family: Times; font-size: 12px; background-color: transparent; border:dotted; border-color:#7b0000; border-width:1px; width:180px" name="last_name" value="" size="14" onKeyup="autotab(this,document.donate_form.amount)"
                        maxlength=14 onkeypress="return inputLimiter(event,'NameCharacters')">
                </td>
            </tr>
            <tr>
                <td>Zip Code:</td>
                <td>
                    <INPUT type="text" id="xZipCode" STYLE="color: #3366CC; text-align: left;  
font-family: Times; font-size: 12px; background-color: transparent; border:dotted; border-color:#7b0000; border-width:1px; width:180px" name="zip" value="" size="14" onKeyup="autotab(this,document.donate_form.amount)" maxlength=14 onkeypress="return inputLimiter(event,'Numbers')">
                </td>
            </tr>
        </table>
    </form>
    <button onclick="myFunction_Varify()">VALIDATE</button>
    <script>
    function myFunction_Varify() {
      myFunction_firstName();
      myFunction_lastName();
      myFunction_zipCode();
    }

    function myFunction_firstName() {
      vFirstName = document.getElementById("xFirstName").value;
      if (vFirstName == "") {
        document.forms['checkout_form'].elements['first_name'].focus();
        alert("No FIRST NAME entered");
      }
    }

    function myFunction_lastName() {
      vLastName = document.getElementById("xLastName").value;
      if (vLastName == "") {
        document.forms['checkout_form'].elements['last_name'].focus();
        alert("No LAST NAME entered");
        return false;
      }
    }

    function myFunction_zipCode() {
      vZipCode = document.getElementById("xZipCode").value;
      if (vZipCode == "") {
        document.forms['checkout_form'].elements['zip'].focus();
        alert("No ZIP CODE entered");
        return false;
      }
    }
    </script>
</body>
</html>

验证输入值
名字:
姓氏:
邮政编码:
验证
函数myFunction_Varify(){
myFunction_firstName();
myFunction_lastName();
myFunction_zipCode();
}
函数myFunction_firstName(){
vFirstName=document.getElementById(“xFirstName”).value;
如果(vFirstName==“”){
document.forms['checkout_form'].elements['first_name'].focus();
警报(“未输入名字”);
}
}
函数myFunction_lastName(){
vLastName=document.getElementById(“xLastName”).value;
如果(vLastName==“”){
document.forms['checkout_form'].elements['last_name'].focus();
警报(“未输入姓氏”);
返回false;
}
}
函数myFunction_zipCode(){
vZipCode=document.getElementById(“xZipCode”).value;
如果(vZipCode==“”){
document.forms['checkout_form'].elements['zip'].focus();
警报(“未输入邮政编码”);
返回false;
}
}
你就是他们(&p>)

    function myFunction_Varify() {
      myFunction_firstName() && myFunction_lastName() && myFunction_zipCode();
    }

    function myFunction_firstName() {
      vFirstName = document.getElementById("xFirstName").value;
      if (vFirstName == "") {
        document.forms['checkout_form'].elements['first_name'].focus();
        alert("No FIRST NAME entered");
        return false;
      }
      return true;
    }

    function myFunction_lastName() {
      vLastName = document.getElementById("xLastName").value;
      if (vLastName == "") {
        document.forms['checkout_form'].elements['last_name'].focus();
        alert("No LAST NAME entered");
        return false;
      }
      return true;
    }

    function myFunction_zipCode() {
      vZipCode = document.getElementById("xZipCode").value;
      if (vZipCode == "") {
        document.forms['checkout_form'].elements['zip'].focus();
        alert("No ZIP CODE entered");
        return false;
      }
      return true;
    }

在编写代码时,应强烈考虑使用缩进。这将使阅读和调试变得更加容易。我确实使用缩进进行了复制和粘贴,但显然,当我尝试手动使用缩进重置时,它在该网站上的格式不正确。如果有帮助的话,我会尝试重新格式化。这就成功了。我想我可能需要在某个地方输入一个return-true语句,但请您解释一下使用&&的原因和方法好吗?你让它变得如此简单。感谢myFunction_firstName()&&myFunction_lastName()&&myFunction_zipCode();第二个函数仅在第一个函数返回true时调用,第三个函数仅在第二个函数返回true时调用。因此,这非常符合您的需要。