我在一个网站上有一个非常简单的登录脚本,它只使用一个简单的密码,它可以很好地满足我的需求。事情是,它只在单击“登录”字时才有效。我需要它做的是按Enter键时也能工作。这是代码:
<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>
我已经尝试过添加输入类型和其他东西,但没有任何东西能让它起作用:(
更新:
同时我将代码更改为:
<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>
但是现在无论按下什么键都会执行验证,所以甚至无法输入密码......我还在这里遗漏了一些东西
答案 0 :(得分:2)
document.body.onkeydown = function(e) {
if (e.keyCode == 13)
validatePass();
};
答案 1 :(得分: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
事件的其他函数。
答案 2 :(得分:0)
JavaScript的替代方法是将type="submit"
添加到HTML中。大多数浏览器默认情况下将其与Enter绑定。
实施例:
<button type="submit" onclick="validatePass()>LOGIN</button>
答案 3 :(得分:0)
首先,让我们创建一个方法来读取将调用您的登录方法的回车键
function inputKeyUp(e) {
e.which = e.which || e.keyCode;
if (e.which == 13) {
validatePass();
}
}
接下来,让我们在HTML
中的正确位置调用该方法 <input id='PASSWORD' type='PASSWORD' onkeyup="inputKeyUp(event)" />
那应该这样做!
答案 4 :(得分:0)
onkeyup = fun1(e)
in password textbox add this event
in script
fun1(e){
if (e.which == 13 || e.keyCode == 13){
validatePass();
}
答案 5 :(得分: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();
}
}
&#13;
<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>
&#13;