如何在显示警报后获得回调刷新功能?

时间:2013-07-31 17:17:53

标签: jquery callback refresh alert

我尝试在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>

1 个答案:

答案 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/