2017-10-12 45 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))

相關問題