单击表单按钮后,隐藏按钮 div 并显示隐藏的 div

Posted

技术标签:

【中文标题】单击表单按钮后,隐藏按钮 div 并显示隐藏的 div【英文标题】:After form button is clicked, hide the button div and reveal a hidden div 【发布时间】:2021-06-14 18:43:08 【问题描述】:

我试图隐藏按钮 div 并在单击表单按钮后显示隐藏的 div 并延迟提交/重定向。以下是我想出的,但似乎没有 100% 有效。

$('form').submit(function(e) 
  e.preventDefault();
  $('#checking').show();
  $('.button').hide();

  setTimeout(() => , 7000);
  return true;
)
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<form>
  <input type="text" placeholder="Enter Name" name="details" />
  <input type="submit" class="button" value="CHECK" />
</form>
<div id="checking" style="display: none;">
  CHECKING DETAILS... Please wait
</div>

非常感谢任何建议

【问题讨论】:

setTimeout(() =&gt; , 7000); return true; 没用 您在哪个部分遇到了问题?问题暗示前者,但空的setTimeout暗示后者。 【参考方案1】:

假设您要显示消息然后提交,请执行此操作

$('form').on("submit", function(e) 
  e.preventDefault();
  $('#checking').show();
  $('.button').hide();

  setTimeout(() => 
    // submit the DOM form
    document.getElementById("myForm").submit(); // or $("#myForm")[0].submit()
  , 7000);
)
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<form id="myForm">
  <input type="text" placeholder="Enter Name" name="details" />
  <input type="submit" class="button" value="CHECK" />
</form>
<div id="checking" style="display: none;">
  CHECKING DETAILS... Please wait
</div>

【讨论】:

【参考方案2】:

在你的计时器回调中,你需要提交表单,但是当你这样做时,sumbit 回调会一次又一次地调用e.preventDefault(),所以你可以使用一个变量作为“标志”来检查是否您是否应该取消活动。

let flag = false;

$('form').on("submit", function(e) 
  if(!flag)
    e.preventDefault();
    $('#checking').show();
    $('.button').hide();
    flag = true;
  
  setTimeout(function() 
    $('form').submit();
  , 7000);
)
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<form action="https://www.example.com" method="Post">
  <input type="text" placeholder="Enter Name" name="details" />
  <input type="submit" class="button" value="CHECK" />
</form>
<div id="checking" style="display: none;">
  CHECKING DETAILS... Please wait
</div>

【讨论】:

以上是关于单击表单按钮后,隐藏按钮 div 并显示隐藏的 div的主要内容,如果未能解决你的问题,请参考以下文章

使用单选按钮显示/隐藏 div 的多种重力形式验证

为每个具有类名的 div 动态创建按钮,并创建显示/隐藏单击功能

单击提交按钮后,PHP 文件和 Javascript 函数未捕获 Html div id 以显示隐藏的 div

Div 在使用 ajax 和 django 进行第二次点击后显示/隐藏

单击按钮时如何隐藏/显示 div?

单击按钮后隐藏组件(登录)并显示其他组件