Javascript 如何在页面刷新时阻止用户单击任何其他按钮(模态窗口解决方案的一部分)

Javascript 如何在页面刷新时阻止用户单击任何其他按钮(模态窗口解决方案的一部分),javascript,modal-dialog,onchange,Javascript,Modal Dialog,Onchange,我正在寻找一个解决方案,其中在一个选择框,如果用户选择 一个项目,页面将用更新的数据刷新。这是使用 onChange功能。同时,如果用户单击submit,然后单击reset按钮,所做的任何更改都会被重置,因为subit在onChange之后不会发生 我认为的一个解决方案是在 调用了onChange函数,但它涉及大量处理工作 因此,我正在查看是否有任何替代方法来禁用onchange中调用的方法中的按钮。然后在页面上加载,使它们返回 function onChangefunc() { docum

我正在寻找一个解决方案,其中在一个选择框,如果用户选择 一个项目,页面将用更新的数据刷新。这是使用
onChange
功能。同时,如果用户单击
submit
,然后单击
reset
按钮,所做的任何更改都会被重置,因为subit在
onChange
之后不会发生

我认为的一个解决方案是在 调用了onChange函数,但它涉及大量处理工作


因此,我正在查看是否有任何替代方法来禁用onchange中调用的方法中的按钮。然后在页面上加载,使它们返回

function onChangefunc()
{
  document.getElementById("button1").disabled = true;
  document.getElementById("button2").disabled = true;
  document.getElementById("button3").disabled = true;

  // do rest of your logic here  
}
然后将其放在标签中页面的末尾:

  <script>
  document.getElementById("button1").disabled = false;
  document.getElementById("button2").disabled = false;
  document.getElementById("button3").disabled = false;
  </script>

document.getElementById(“button1”).disabled=false;
document.getElementById(“button2”).disabled=false;
document.getElementById(“button3”).disabled=false;

我会选择模式和/或覆盖路径,这是一种更好的用户体验,因为用户可以看到正在发生的事情。最简单的解决方法就是在页面上的某个地方粘贴一个div

<div id="overlay"></div>
注:不透明度在IE8及更老版本中不起作用,但快速的谷歌会发现一些替代方案

然后在onChange中(假设使用jQuery),只需放置$('#overlay').show()或.fadeIn(),完成后将其隐藏,或者如果页面刷新,则无需执行任何操作

如果你不想看到任何东西,去掉背景色和不透明度,它将是不可见的

我建议为了清楚起见,将加载的GIF粘贴在叠层的中间。
希望有帮助

在调用onchange时禁用这些按钮,在加载页面时重新启用它们:这似乎是一个干净的解决方案?为什么要对自己这样做:p但是使用document.getElementById('overlay')可以很容易地做到这一点。style.visibility='visible';等待很抱歉,这不适用于display none,您需要document.getElementById('overlay').style.display='block';然后再次显示class='none'以隐藏。+1是的,我也这样认为。你的答案是禁用onchange中调用的方法中的按钮。然后在页面加载时启用它们。与kishore之前给出的几乎完全相同。你能提供一些新的代码来代表你的答案吗?谢谢@NomikOS为我详细介绍:)
#overlay {
    height: 100%;
    width: 100%;
    background-color: #ffffff;
    opacity: 0.7;
    z-index:10;
    position:fixed;
    display:none;
}