我的Javascript陷入困境

时间:2013-05-16 00:41:57

标签: javascript

以下是导致我出现问题的代码片段。 在这之前有一堆东西可以正常工作。

if (numWOOD_OK) 
    {
    return true;    
    }
else {  
    alert("Number of bags must be a whole number");
    return false;                             
    }   
if (numDISTANCE<=0)                             
    {                       
    alert("Input for distance is invalid");                 
    return false;                       
    }

基本上if (numWOOD_OK)正在运行一个先前声明的RegExp,如果它返回false,则意味着已经在输入框中输入了一个小数 - 我们不想要这样做。

if (numDISTANCE<=0)正在检查特定输入框是否为空。它的设置方式与if (numWOOD_OK)之前的其他六项检查相同。

问题是,if (numDISTANCE<=0)不会触发。 谁能告诉我为什么?

3 个答案:

答案 0 :(得分:3)

在达到条件之前,总是返回true或false,因此它永远不会执行。

你可以重写以使它像这样工作:

if (!numWOOD_OK)  {
    alert("Number of bags must be a whole number");
    return false;                             
}   
if (numDISTANCE<=0) {                       
    alert("Input for distance is invalid");                 
    return false;                       
}
return true;

答案 1 :(得分:0)

无论你的内部函数是什么函数都以上面的返回语句之一结束。如果您有这样的代码

if(this) {
    return true;
} else {
    return false;
}
// this part will never execute

答案 2 :(得分:0)

当代码到达时,它将已经从函数返回。返回短路逻辑并立即停止功能。您可以考虑使用局部变量来存储返回值,并在结尾处返回:

var ret;
if (numWOOD_OK) 
    {
    ret = true;
    }
else {  
    alert("Number of bags must be a whole number");
    ret = false;                        
    }   
if (numDISTANCE<=0)                             
    {                       
    alert("Input for distance is invalid");                 
    ret = false;     
    }
return ret;