以下是导致我出现问题的代码片段。 在这之前有一堆东西可以正常工作。
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)
不会触发。
谁能告诉我为什么?
答案 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;