2017-10-12 28 views
-1

我有一个JavaScript登录验证模块,但是我if块是部分工作,之后即条件AND(& &)没有被选中导致不开机密码应用验证,这是我的代码片段。javascript和(&&)运算符是不是里面工作,如果块

function validateLogin(){ 
 
    var userid = document.getElementById('user_id'); 
 
    var passid = document.getElementById('pass_id'); 
 

 
    if((userid.value.length < 3) && (passid.value.length < 6)) { 
 
     document.getElementById('user_error').setAttribute("style","color:red") 
 
     document.getElementById('user_error').innerHTML="invalid username/password."; 
 
     return false; 
 
    } 
 
    return true; 
 
}
<form id="login_form" name="login" onsubmit=" return validateLogin()" > 
 
<div> 
 
    <input class="user_login_form" id='user_id' type="text" required tabindex="1" name="user_id" autofocus autocomplete=off placeholder ="User Name"> 
 
</div> 
 
<div> 
 
    <input class="user_login_form" id='pass_id' required type="password" tabindex="2" name="user_pass" placeholder ="Password"> 
 
    <p id ="user_error"></p> 
 
</div> 
 
<input class="user_login_submit" type="submit" id='btnLogin' tabindex="3" name="login_btnSubmit" value="LOGIN" >

+0

'userid.value.length> 3' – zynkn

+0

大声说出你的情况,并将其与你写的内容进行比较。 – Teemu

回答

2

它的if优化。如果第一部分是假的,那么进一步的比较没有执行,因为的false && Anything结果false

则需要使用比较OR

function validateLogin() { 
 
    var userid = document.getElementById('user_id'); 
 
    var passid = document.getElementById('pass_id'); 
 
    if ((userid.value.length < 3) || (passid.value.length < 6)) { 
 
    document.getElementById('user_error').setAttribute("style", "color:red") 
 
    document.getElementById('user_error').innerHTML = "invalid username/password."; 
 
    return false; 
 
    } 
 
    return true; 
 
}
<form id="login_form" name="login" onsubmit=" return validateLogin()"> 
 
    <div> 
 
    <input class="user_login_form" id='user_id' type="text" required tabindex="1" name="user_id" autofocus autocomplete=off placeholder="User Name"> 
 

 
    </div> 
 
    <div> 
 
    <input class="user_login_form" id='pass_id' required type="password" tabindex="2" name="user_pass" placeholder="Password"> 
 
    <p id="user_error"></p> 
 
    </div> 
 
    <input class="user_login_submit" type="submit" id='btnLogin' tabindex="3" name="login_btnSubmit" value="LOGIN">

+0

即使我的user_id条件设置为true,即user_id条件设置为true,即使它不检查pass_id –

+0

@Prasad_Joshi它绝对在上面的代码片段中工作,但是您将AND和OR混淆了,它无法正常工作。 – Walk

+0

你的代码正在工作,我在上面询问何时使用AND。 –

0

您要使用或在这里。所以,你把你的错误,如果用户ID的长度小于3或passid长度小于6

if((userid.value.length < 3) || (passid.value.length < 6))

相关问题