首页 > 解决方案 > 函数不会运行代码的第二部分我该如何解决这个问题?

问题描述

这是我的代码

function CheckForm_1() {
    var F1 = document.getElementById('srch');
    var Lgth = document.getElementById('srch');
    if (F1.value == "") {
        document.getElementById("Empty_Err");
        Empty_Err.style.display = 'inline';
        Empty_Err.stylebackgroundColor = 'linen';
        return false;
    } else {
        return true;
    }
    if (Lgth.value.length > 17 || Lgth.value.length < 4) {
        document.getElementById("Length_Err");
        Length_Err.style.display = 'inline';
        backgroundColor = 'linen';
        alert("Search length must be be between 4 and 17");
        return false;
    } else {
        return true;
    }
}

我无法检查字段长度对此有什么想法吗?该代码将对空字段进行检查。

标签: javascript

解决方案


返回值将停止函数的执行。

正如@Calvin Nunes 评论的那样

当你使用 return 时,你会停止函数执行,因为你返回了一个值,所以函数被终止......这就是为什么你永远不会到达第二个 if,因为在第一个 if 你 return 或 true 或 false

function CheckForm_1() {
  var F1 = document.getElementById('srch');
  var errorMessage = document.getElementById("errorMessage");
  if (F1.value == "") {
    errorMessage.style.display = 'inline';
    errorMessage.style.backgroundColor = 'linen';
    errorMessage.innerHTML= "Search field is empty";
  } else if (F1.value.length > 17 || F1.value.length < 4) {
    errorMessage.style.display = 'inline';
    errorMessage.style.backgroundColor = 'linen';
    errorMessage.innerHTML = 'Search length must be be between 4 and 17';
  } else {
    errorMessage.style.display = 'none';
  }
}
<input id='srch' type="text" />
<div id="errorMessage" style="display:none">Search field is empty</div><br>
<button type="button" onclick="CheckForm_1()">Submit</button>


推荐阅读