2017-06-20 87 views
1

我在網站上有一個非常簡單的登錄腳本,它只使用一個簡單的密碼,而且它確實很好,我需要它。事情是,它只有在單擊「登錄」字時才起作用。我需要做的是在按Enter鍵時也能工作。 here's代碼:Onclick event + Enter key

<div style="background-image:url(images/IMG_Log_In_teste.jpg);width:1490px;height:243px;color:black;font-size:20px;" > 
     <br></br> 
     <a href="areaclienteOLD.html" onclick="javascript:return validatePass()"> 
     <div class="cities"> 
      <font color="white">        
       LOGIN 
      </font> 
     </div> 
     </a><br></br> 
     <input id='PASSWORD' type='PASSWORD' /> 
     <a href="areaclienteOLD.html" onclick="javascript:return validatePass()"></a><br></br> 
     <script> 
      function validatePass(){ 
      if(document.getElementById('PASSWORD').value == 'pkmass1725'){ 
      return true; 
       }else{ 
      alert('Password errada! Tente de novo.'); 
        return false; 
       } 
      } 
     </script>      
    </div> 

我已經嘗試添加的輸入類型和其他東西,但沒有使它工作:(

UPDATE:

同時,我改變了代碼如下:

<div style="background:blue;width:1490px;height:243px;color:black;font-size:20px;" > 
     <a href="areaclienteOLD.html" onclick="javascript:return validatePass()"> 
     <div class="cities"> 
      <font color="white">        
       LOGIN 
      </font> 
     </div> 
     </a> 
     <input id='PASSWORD' type='PASSWORD' onkeydown="javascript:return validatePass()"/> 
     <a href="areaclienteOLD.html" onclick="javascript:return validatePass()"></a> 
     <script> 
      function validatePass(){ 
      if(document.getElementById('PASSWORD').value == 'pkmass1725'){ 
      return true; 
       }else{ 
      alert('Password errada! Tente de novo.'); 
        return false; 
       } 
      } 
     </script> 

     <script> 
      document.body.onkeydown = function(e) { 
       if (e.keyCode == 13) 
       validatePass(); 
      }; 
     </script> 

    </div> 

但現在按什麼鍵也進行驗證,所以它甚至不能輸入密碼...... i'm人仍下落不明的東西在這裏

+0

只要看看同樣已回答的問題:HTTPS:/ /stackoverflow.com/questions/155188/trigger-a-button-click-with-javascript-on-the-enter-key-in-a-text-box – Matus

回答

2
document.body.onkeydown = function(e) { 
    if (e.keyCode == 13) 
     validatePass(); 
}; 
+0

這幾乎是完美的,唯一的問題是如果密碼是正確的比它不會發生什麼 – questionador

+0

@questiona dor您是否使用表單發送數據?如果是這樣,你必須使用JavaScript來提交它。 – schroffl

+0

@schroffl,不,我只是使用我粘貼的代碼... – questionador

0

JavaScript的替代方法是將type="submit"添加到HTML中。大多數瀏覽器默認使用Enter鍵綁定。

實施例: <button type="submit" onclick="validatePass()>LOGIN</button>

1

它附加到文檔:

document.addEventListener('keydown', function(e){ 
    if (document.getElementById('PASSWORD').value === '') return; 
    if (e.which === 13) validatePass(); 
    // e.which === 13 means enter key is pressed. 
}); 

它附加到<input id="PASSWORD">

document.getElementById('PASSWORD').addEventListener('keydown', function(e){ 
    if (document.getElementById('PASSWORD').value === '') return; 
    if (e.which === 13) validatePass(); 
    // e.which === 13 means enter key is pressed. 
}); 

使用addEventListener是優選的方式,因爲它不覆蓋其他功能結合到onkeydown事件。

+0

您可能還想將偵聽器僅附加到'input'元素。否則,即使用戶未輸入密碼,也會觸發此操作。 – schroffl

+0

@schroffl你是對的 –

+0

@schroffl監聽器應該附加到'document'而不是'input',否則如果輸入沒有被聚焦,它將不會被觸發。只需添加一行以確保有針對性的「輸入」不爲空即可。 –

0

首先,讓我們使讀取輸入將調用您的登錄方法

function inputKeyUp(e) { 
e.which = e.which || e.keyCode; 
if (e.which == 13) { 
    validatePass(); 
} 

}

下一個密鑰的方法,讓我們稱之爲在正確位置,該方法在HTML

<input id='PASSWORD' type='PASSWORD' onkeyup="inputKeyUp(event)" /> 

而且應該這樣做!

0
onkeyup = fun1(e) 
in password textbox add this event 
in script 
fun1(e){ 
if (e.which == 13 || e.keyCode == 13){ 
     validatePass(); 
} 
+0

如果您在答案中添加簡短的解釋,那將會很好。 – Roopendra

0

對於一個完整的解決方案看下面(更改登錄鏈接到黑色,所以你可以看到它):

function validatePass() { 
 
    if (document.getElementById("PASSWORD").value == 'pkmass1725') { 
 
    // do something if the password was correct 
 
    return true; 
 
    } else { 
 
    alert('Password errada! Tente de novo.'); 
 
    return false; 
 
    } 
 
} 
 

 
function validateOnEnter(event) { 
 
    var key = event.which || event.keyCode; 
 
    if (key == 13) { // enter pressed then invoke the validation method 
 
    validatePass(); 
 
    } 
 
}
<div style="background-image:url(images/IMG_Log_In_teste.jpg);width:1490px;height:243px;color:black;font-size:20px;"> 
 
    <br></br> 
 
    <a href="#" onclick="return validatePass()"> 
 
    <div class="cities"> 
 
     <font color="black">        
 
       LOGIN 
 
      </font> 
 
    </div> 
 
    </a> 
 
    <br></br> 
 
    <input id='PASSWORD' type='PASSWORD' onkeypress="validateOnEnter(event)" /> 
 
    <a href="#" onclick="return validatePass()"></a> 
 
    <br></br> 
 
</div>

+0

該代碼段不起作用。當你輸入正確的密碼時,回車鍵只是確認,但沒有任何反應 – questionador