【问题标题】:How can I deselect radio buttons when back button is pressed?按下后退按钮时如何取消选择单选按钮?
【发布时间】:2020-05-21 17:46:14
【问题描述】:

我正在开发一个网页,用户可以在其中通过多个单选组进行选择。如果用户点击链接并离开页面,然后点击返回按钮返回页面,浏览器的默认行为是记住用户之前的选择并保留它们。

在使用后退按钮的情况下,是否可以使用 JavaScript(jQuery ok) 取消选择先前的选择?在控制台中,我可以使用 .reset() 或 .checked = false; 取消选择。但我的问题是在按下后退按钮时让它运行。

这是一个基本示例,我尝试在 popstate 事件上运行代码。如果您选择一个选项并单击链接,然后在窗口中单击鼠标右键并选择“返回”,您检查的收音机仍将被选中。

window.addEventListener('popstate', function(event) {
 document.getElementById("radio-group").reset();
}, false);
<!-- SCREEN ONE -->
<div>
  <form id="radio-group">
    <input type="radio" name="letter" value="A" id="radio-1"><label for="radio-1"><span>A</span></label>
    <input type="radio" name="letter" value="B" id="radio-2"><label for="radio-2"><span>B</span></label>
    <input type="radio" name="letter" value="C" id="radio-3"><label for="radio-3"><span>C</span></label>
  </form>
</div>

<a href="something">link</a>

【问题讨论】:

    标签: javascript html


    【解决方案1】:

    unload 事件运行正常:

    window.addEventListener('unload', function(event) {
     document.getElementById("radio-group").reset();
    }, false);
    <!-- SCREEN ONE -->
    <div>
      <form id="radio-group">
        <input type="radio" name="letter" value="A" id="radio-1"><label for="radio-1"><span>A</span></label>
        <input type="radio" name="letter" value="B" id="radio-2"><label for="radio-2"><span>B</span></label>
        <input type="radio" name="letter" value="C" id="radio-3"><label for="radio-3"><span>C</span></label>
      </form>
    </div>
    
    <a href="something">link</a>

    你也可以使用beforeunload事件

    【讨论】:

      【解决方案2】:

      您可以使用pageshow 事件:

      $(window).bind("pageshow", function(event) {
          if (event.originalEvent.persisted) {
              document.getElementById("radio-group").reset();
          }
      });
      

      【讨论】:

      • 在我看来,目前只有 Firefox 支持。
      猜你喜欢
      • 1970-01-01
      • 2015-02-27
      • 1970-01-01
      • 2021-09-01
      • 2021-12-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多