在确认框中单击确认或取消按钮后,如何使用JavaScript或jQuery返回true或false值?

时间:2018-07-30 09:38:09

标签: javascript jquery

我当前正在从事一个项目,因为如果用户尝试刷新当前页面,他们将收到带有警告Don't refresh page or else you will lose data的确认框,因此如果取消,则他将停留在同一页面上,但是我的问题是单击它们时是的,即重新加载,因为他单击重新加载时,应该会再收到you clicked reload now page will reload and data will loss个警报,所以该怎么做,因为当他单击重新加载按钮时我什么都没得到。

下面我写了剧本。

<script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
<script>
    $(window).on('beforeunload', function(){ 
        return prompt("are you sure want to refresh this page !");

        if(true){
            alert('You will lose data');
        }
        else{
            alert("Ok continue your work");
       }
    });
</script>

2 个答案:

答案 0 :(得分:1)

return语句退出一个函数,因此不会执行return语句之后的所有内容

我不认为您需要一个prompt框,而是一个confirm框(请参阅here)。

  • prompt框仅用于由用户获取某些东西
  • confirm框用于询问用户是否确认了某内容

var rep = confirm("are you sure want to refresh this page !");
console.log(rep);

if(rep){
  alert('You will lose data');
}
else{
  alert("Ok continue your work");
}

答案 1 :(得分:0)

我建议您在使用onBeforeLoad事件时不要使用Jquery。它导致不良行为。 Vanilla JS会更好地处理它。

示例:

window.onbeforeunload = function beforeExit();

function beforeExit(){
return confirm("Are you sure you want to exit?");
}

使用这种方法,如果用户尝试刷新页面,则将执行您的函数。