我正在尝试为一个简单的密码检查程序创建代码,该密码检查程序将成为我为学生提供的活动网站的一部分。我不在乎密码是否易于在代码中找到。我只是希望学生能够输入密码,然后按回车或点击按钮查看密码是否正确。
这是javascript:
<script type="text/javascript">
function isValid(){
var keyvalue = document.getElementById('keyvalue').value;
if (keyvalue == "miranda")
{document.getElementById('welcomeDiv').style.display = "block";}
else
{alert('ACCESS DENIED')}
}
</script>
HTML
<form name="PasswordField" action="">
Type Password Below:</br>
<input type="text" id="keyvalue" name="keyvalue" onkeydown = "if (event.keyCode == 13) document.getElementById('subPass).click()">
<input type="button" id="subPass" value="ACCESS" onclick="isValid(this);">
</form>
<div id="welcomeDiv" style="display:none;" class="answer_list">
</br>
<p>ACCESS GRANTED</p></br>
<a href="google.com">Click to go to next stage.</a>
</div>
单击该按钮效果很好,但如果按Enter键,它将在重新加载页面之前短暂闪烁隐藏的div,从而再次隐藏div。我试图弄清楚如何阻止它这样做。
答案 0 :(得分:0)
按钮正在提交表单,重新加载页面。
在按钮的onclick
属性中,您需要return false
覆盖浏览器实际发送表单的默认行为:
<input type="button" id="subPass" value="ACCESS" onclick="isValid(this); return false">
正如Marvin在评论中提到的那样,您还需要修复文本输入的onkeydown
属性中的引号并删除一些额外的空格:
<input type="text" id="keyvalue" name="keyvalue" onkeydown="if (event.keyCode == 13) document.getElementById('subPass').click()">
答案 1 :(得分:0)
你的action=""
可能不会做你喜欢的事情。
使用`onsubmit =“return false;”'代替:
<form name="PasswordField" onsubmit="return false;">
Type Password Below:</br>
<input type="text" id="keyvalue" name="keyvalue" onkeydown = "if (event.keyCode == 13) document.getElementById('subPass').click()">
<input type="button" id="subPass" value="ACCESS" onclick="isValid(this);">
</form>
或者只是将其设为<div
而不是<form