我尝试在jquery工作中创建这个简单的密码函数,因为我需要它。现在,在页面加载时,系统会提示您输入密码以查看页面正文。如果密码不正确,您会收到错误警告。这一切都有效,但它已经死了。
我需要的是在警报中“再试一次”按钮,只需刷新页面即可再次尝试。我该怎么做呢?也许某人有一个可行的解决方案?
我无法正确使用js这种类型的任务,因为如果传递不正确(因此没有看到我的问题),你将无法看到代码。所以,我必须在这里粘贴所有代码。我希望没问题。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>-</title>
</head>
<body style="display:none;color: #000;">
<script src="http://code.jquery.com/jquery-latest.min.js" type="text/javascript"></script>
<script type="text/Javascript">
$( document ).ready(function() {
var password
var pass1="123"
password=prompt('Please enter password to view page')
if (password==123)
{ $('body').show(); }
else{
alert('password incorrect! Try Again!')
}
});
</script>
This is the page content that was password protected
</body>
</html>
答案 0 :(得分:1)
为什么需要刷新页面?使用循环:
var correct_pass = false;
while (!correct_pass) {
var pass1 = '123';
var password = prompt('Please enter password to view page');
if (password == pass1) {
$('body').show();
correct_pass = true;
} else {
alert('password incorrect! Try Again!');
}
}
你可以将它扩展为一个函数,使它更有能力,比如说,如果用户输入错误,它不会连续两个弹出窗口错误:
(function get_password(prev_bad_pass = false) {
if (prev_bad_pass) {
var prompt_text = 'Password incorrect! Try Again!';
} else {
var prompt_text = 'Please enter password to view page';
}
var pass1 = '123';
var password = prompt(prompt_text);
if (password == pass1) {
$('body').show();
} else {
get_password(true); //run the function again
}
}());
此函数将反复执行,直到输入正确的密码。你当然可以做一个小提琴:http://jsfiddle.net/v2fmA/