繁体   English   中英

Javascript函数,调用另一个函数,但返回false不会停止

[英]Javascript function, calls another function, but return false doesn't stop

当我运行这段代码时,它似乎并没有达到我的期望。 所以这是一个验证,当我运行if语句时,验证器在错误时停止运行。 但是,当它从另一个函数numCheck击中错误时,它会发出警报,然后继续。 由于下面还有更多的验证,如果numCheck恢复干净,我该如何继续进行其余的验证,而不是取消验证的正确性? 我要去哪里错了?

 function numCheck(num){ if(isNaN(num)){ alert("Vendor number must be numeric"); focusTo(document.forms["parts"]["vendorNo"]); return false; } } function validateForm(){ //DECLARATION var vendorNo = document.forms["parts"]["vendorNo"].value; //VENDOR NUMBER numCheck(vendorNo); if(vendorNo.length != 4){ alert("Please enter 4 digit Vendor Number"); focusTo(document.forms["parts"]["vendorNo"]); return false; } 

在此先感谢您,我花了很多时间来解决这个问题。

您还必须从父(调用)函数validateForm返回

您的子例程numCheck将返回到调用函数validateForm

 function numCheck(num){ if(isNaN(num)){ alert("Vendor number must be numeric"); focusTo(document.forms["parts"]["vendorNo"]); return false; } return true; } function validateForm(){ //DECLARATION var vendorNo = document.forms["parts"]["vendorNo"].value; //VENDOR NUMBER if (numCheck(vendorNo)==false){ console.log("Invalid vendorNumber"); return; // you must also return from the calling function, otherwise the code will still continue. } if(vendorNo.length != 4){ alert("Please enter 4 digit Vendor Number"); focusTo(document.forms["parts"]["vendorNo"]); return false; } 

numCheck返回并不意味着validateForm已返回任何内容。 检查numCheck的返回值,然后采取适当的措施。

function validateForm(){
  ...
  // numCheck returns a boolean here. If it returns false, return from this function
  if(!numCheck(vendorNo)) {
    return false;
  }
 ....

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM