if语句永远不会在此代码中工作

Suh*_*pta 1 html javascript

if即使我填写了text-field和password字段,以下函数的语句也不会执行.该alert函数在if语句之前工作正常但alertif语句之后的函数永远不起作用.

这是功能:

<script type="text/javascript">
    function CheckForMissingFields() {
        alert("before if statement");
        if(document.getElementById("username").length != 0 && document.getElementById("password").length != 0) {
            document.getElementByName("SignInButton").disabled = 'false';
            alert("inside if statement");
        }
        alert("outside if statement");
    } 
Run Code Online (Sandbox Code Playgroud)

最初,按钮的状态SignIn被禁用.我希望在完成两个字段时启用它.if声明从未奏效的原因是什么?

以下是相应的HTML登录代码段:

<ul>  <form method="post" action="#">
          <li> <input type="text" id="username" value="Username or Email" size="25" name="UserID"  onfocus="emptyTextField()" /> </li>
          <li> <input type="password" id="password" value="password" size="25" name="UserPassword" onfocus="emptyPasswordField()" /> 
          <center><input type="submit" value="sign-in" style="font-size:20px" name="SignInButton" disabled="true"/> </center>
          </li>
              </form>
</ul>
Run Code Online (Sandbox Code Playgroud)

Koo*_*Inc 7

使用:if (document.getElementById("username").value.length)等等.换句话说,你需要value该领域.

无需!=0顺便说一下,如果value.length === 0 value.length将评估为false(falsy)

在检查值长度之前,您可能希望修剪该值,因此:

if (document.getElementById("username").value.replace(/^\s+|\s+$/,'').length)
Run Code Online (Sandbox Code Playgroud)