2017-06-20 88 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