当用户使用 event.keyCode ===13 释放键盘上的键时执行函数时收到错误消息
Getting an error message when executing a function when the user releases a key on the keyboard using event.keyCode ===13
我正在尝试创建一个功能,允许用户按键盘上的 Enter 键来验证密码字段。当在键盘上按回车键后密码错误时,我不断收到找不到页面的消息。如果我单击密码框上的输入按钮,我的警报会弹出,但没有任何反应,正如预期的那样。我基本上希望通过单击键盘上的回车按钮获得完全相同的结果。我怎样才能让它正常工作?
下面是我目前正在尝试使用的笔的 link。
https://codepen.io/Pacman0006/pen/LYbqQYa
//creates a funtion that validates password
function computerPassword() {
var val = document.getElementById('password').value;
if (val =="Joker") {
window.open("https://www.google.com");
//location.href="https://www.google.com";
}else{
//keep getting errors so I added this
//to open in same window when user inputs wrong after hitting enter
//window.open("https://www.bing.com", "_parent");
alert("that is the wrong password");
}
}
var input = document.getElementById("password");
// Execute a function when the user releases a key on the keyboard; from W3Schools.com
input.addEventListener("keyup", function(event) {
// Number 13 is the "Enter" key on the keyboard
if (event.keyCode === 13) {
// Cancel the default action, if needed
event.preventDefault();
// Trigger the button element with a click
document.getElementById("go").click();
}
});
@import "compass/css3";
* { box-sizing: border-box; }
body {
font-family: "HelveticaNeue-Light","Helvetica Neue Light","Helvetica Neue",Helvetica,Arial,"Lucida Grande",sans-serif;
color:white;
font-size:12px;
background:#333 url(/images/classy_fabric.png);
}
form {
background:#111;
width:300px;
margin:30px auto;
border-radius:0.4em;
border:1px solid #191919;
overflow:hidden;
position:relative;
box-shadow: 0 5px 10px 5px rgba(0,0,0,0.2);
}
form:after {
content:"";
display:block;
position:absolute;
height:1px;
width:100px;
left:20%;
background:linear-gradient(left, #111, #444, #b6b6b8, #444, #111);
top:0;
}
form:before {
content:"";
display:block;
position:absolute;
width:8px;
height:5px;
border-radius:50%;
left:34%;
top:-7px;
box-shadow: 0 0 6px 4px #fff;
}
.inset {
padding:20px;
border-top:1px solid #19191a;
}
form h1 {
font-size:18px;
text-shadow:0 1px 0 black;
text-align:center;
padding:15px 0;
border-bottom:1px solid rgba(0,0,0,1);
position:relative;
}
form h1:after {
content:"";
display:block;
width:250px;
height:100px;
position:absolute;
top:0;
left:50px;
pointer-events:none;
transform:rotate(70deg);
background:linear-gradient(50deg, rgba(255,255,255,0.15), rgba(0,0,0,0));
}
label {
color:#666;
display:block;
padding-bottom:9px;
}
input[type=text],
input[type=password] {
width:100%;
padding:8px 5px;
background:linear-gradient(#1f2124, #27292c);
border:1px solid #222;
box-shadow:
0 1px 0 rgba(255,255,255,0.1);
border-radius:0.3em;
margin-bottom:20px;
}
label[for=remember]{
color:white;
display:inline-block;
padding-bottom:0;
padding-top:5px;
}
input[type=checkbox] {
display:inline-block;
vertical-align:top;
}
.p-container {
padding:0 20px 20px 20px;
}
.p-container:after {
clear:both;
display:table;
content:"";
}
.p-container span {
display:block;
float:left;
color:#0d93ff;
padding-top:8px;
}
input[type=submit] {
padding:5px 20px;
border:1px solid rgba(0,0,0,0.4);
text-shadow:0 -1px 0 rgba(0,0,0,0.4);
box-shadow:
inset 0 1px 0 rgba(255,255,255,0.3),
inset 0 10px 10px rgba(255,255,255,0.1);
border-radius:0.3em;
background:#0184ff;
color:white;
float:right;
font-weight:bold;
cursor:pointer;
font-size:13px;
}
input[type=submit]:hover {
box-shadow:
inset 0 1px 0 rgba(255,255,255,0.3),
inset 0 -10px 10px rgba(255,255,255,0.1);
}
input[type=text]:hover,
input[type=password]:hover,
label:hover ~ input[type=text],
label:hover ~ input[type=password] {
background:#27292c;
}
<form>
<h1>Input Your Password</h1>
<div class="inset">
<p>
<label for="password">Password</label>
<input type="password" name="password" id="password">
</p>
</div>
<p class="p-container">
<input type="button" name="go" id="go" value="Enter" onclick="computerPassword();">
</p>
</form>
您缺少语法 error/a {
。试一试:
//creates a funtion that validates password
function computerPassword() {
var val = document.getElementById('password').value;
if (val =="Joker"){
window.open("https://www.google.com");
//location.href="https://www.google.com";
}else{
//keep getting errors so I added this
//to open in same window when user inputs wrong after hitting enter
//window.open("https://www.bing.com", "_parent");
window.open("https://bing.com");
}
}
好的,我想我找到了问题所在。 Lonny B 提到将表单发布到服务器,而我无意这样做。然而,这让我想到,一个表单元素本质上可能会在我没有明确告诉它的情况下寻找这个服务器。我不确定它是否正确,但我在我的 html 中将表单元素更改为 Div,现在它按预期工作了。
我正在尝试创建一个功能,允许用户按键盘上的 Enter 键来验证密码字段。当在键盘上按回车键后密码错误时,我不断收到找不到页面的消息。如果我单击密码框上的输入按钮,我的警报会弹出,但没有任何反应,正如预期的那样。我基本上希望通过单击键盘上的回车按钮获得完全相同的结果。我怎样才能让它正常工作?
下面是我目前正在尝试使用的笔的 link。
https://codepen.io/Pacman0006/pen/LYbqQYa
//creates a funtion that validates password
function computerPassword() {
var val = document.getElementById('password').value;
if (val =="Joker") {
window.open("https://www.google.com");
//location.href="https://www.google.com";
}else{
//keep getting errors so I added this
//to open in same window when user inputs wrong after hitting enter
//window.open("https://www.bing.com", "_parent");
alert("that is the wrong password");
}
}
var input = document.getElementById("password");
// Execute a function when the user releases a key on the keyboard; from W3Schools.com
input.addEventListener("keyup", function(event) {
// Number 13 is the "Enter" key on the keyboard
if (event.keyCode === 13) {
// Cancel the default action, if needed
event.preventDefault();
// Trigger the button element with a click
document.getElementById("go").click();
}
});
@import "compass/css3";
* { box-sizing: border-box; }
body {
font-family: "HelveticaNeue-Light","Helvetica Neue Light","Helvetica Neue",Helvetica,Arial,"Lucida Grande",sans-serif;
color:white;
font-size:12px;
background:#333 url(/images/classy_fabric.png);
}
form {
background:#111;
width:300px;
margin:30px auto;
border-radius:0.4em;
border:1px solid #191919;
overflow:hidden;
position:relative;
box-shadow: 0 5px 10px 5px rgba(0,0,0,0.2);
}
form:after {
content:"";
display:block;
position:absolute;
height:1px;
width:100px;
left:20%;
background:linear-gradient(left, #111, #444, #b6b6b8, #444, #111);
top:0;
}
form:before {
content:"";
display:block;
position:absolute;
width:8px;
height:5px;
border-radius:50%;
left:34%;
top:-7px;
box-shadow: 0 0 6px 4px #fff;
}
.inset {
padding:20px;
border-top:1px solid #19191a;
}
form h1 {
font-size:18px;
text-shadow:0 1px 0 black;
text-align:center;
padding:15px 0;
border-bottom:1px solid rgba(0,0,0,1);
position:relative;
}
form h1:after {
content:"";
display:block;
width:250px;
height:100px;
position:absolute;
top:0;
left:50px;
pointer-events:none;
transform:rotate(70deg);
background:linear-gradient(50deg, rgba(255,255,255,0.15), rgba(0,0,0,0));
}
label {
color:#666;
display:block;
padding-bottom:9px;
}
input[type=text],
input[type=password] {
width:100%;
padding:8px 5px;
background:linear-gradient(#1f2124, #27292c);
border:1px solid #222;
box-shadow:
0 1px 0 rgba(255,255,255,0.1);
border-radius:0.3em;
margin-bottom:20px;
}
label[for=remember]{
color:white;
display:inline-block;
padding-bottom:0;
padding-top:5px;
}
input[type=checkbox] {
display:inline-block;
vertical-align:top;
}
.p-container {
padding:0 20px 20px 20px;
}
.p-container:after {
clear:both;
display:table;
content:"";
}
.p-container span {
display:block;
float:left;
color:#0d93ff;
padding-top:8px;
}
input[type=submit] {
padding:5px 20px;
border:1px solid rgba(0,0,0,0.4);
text-shadow:0 -1px 0 rgba(0,0,0,0.4);
box-shadow:
inset 0 1px 0 rgba(255,255,255,0.3),
inset 0 10px 10px rgba(255,255,255,0.1);
border-radius:0.3em;
background:#0184ff;
color:white;
float:right;
font-weight:bold;
cursor:pointer;
font-size:13px;
}
input[type=submit]:hover {
box-shadow:
inset 0 1px 0 rgba(255,255,255,0.3),
inset 0 -10px 10px rgba(255,255,255,0.1);
}
input[type=text]:hover,
input[type=password]:hover,
label:hover ~ input[type=text],
label:hover ~ input[type=password] {
background:#27292c;
}
<form>
<h1>Input Your Password</h1>
<div class="inset">
<p>
<label for="password">Password</label>
<input type="password" name="password" id="password">
</p>
</div>
<p class="p-container">
<input type="button" name="go" id="go" value="Enter" onclick="computerPassword();">
</p>
</form>
您缺少语法 error/a {
。试一试:
//creates a funtion that validates password
function computerPassword() {
var val = document.getElementById('password').value;
if (val =="Joker"){
window.open("https://www.google.com");
//location.href="https://www.google.com";
}else{
//keep getting errors so I added this
//to open in same window when user inputs wrong after hitting enter
//window.open("https://www.bing.com", "_parent");
window.open("https://bing.com");
}
}
好的,我想我找到了问题所在。 Lonny B 提到将表单发布到服务器,而我无意这样做。然而,这让我想到,一个表单元素本质上可能会在我没有明确告诉它的情况下寻找这个服务器。我不确定它是否正确,但我在我的 html 中将表单元素更改为 Div,现在它按预期工作了。