复选框仍然选中点击后退按钮,但它没有“选中”属性

2022-08-30 17:22:37

我正在为电子商务开发基于复选框的过滤器。一切正常,但是当我尝试通过后退按钮返回时,复选框仍然选中,没有任何选中的属性。

我注意到这个“问题”发生在:

  • 野生动物园

我发现的唯一方法是重新加载页面。但是“用户返回”事件似乎无法捕获,我不想刷新每个页面。

将所有复选框设置为默认值毫无意义。

停用 Chrome 缓存不起作用。


我不知道我的代码示例是否有用

编辑:这是我的第一篇文章,所以一定要告诉我为什么我的问题似乎不清楚


答案 1

有一个疯狂的技巧来解决这个问题。添加到复选框。听起来很疯狂,但它有效!autocomplete='off'


答案 2

我知道这是一个老问题,但有人可能会“谷歌”同样的问题并降落在这里,就像我所做的那样。在2019年,Chrome 71仍然有这种行为,所以它不会很快消失。同时,这里有一个脚本,可以轻松地将已检查状态调整为已检查属性。

<script>
/* This script is to FIX some strange browser (Chrome included) behaviour.
History back returns false checks on checkboxes.
The checked HTML attribute is only a "DEFAULT VALUE" unfortunately */
var filter_form = document.getElementById("filter_form");
var inputs = filter_form.getElementsByTagName("input");
for(var i = 0; i < inputs.length; i++) {
    if(inputs[i].type == "checkbox") {
      /* If default is checked, but state is not checked, check it*/
      if (inputs[i].defaultChecked == true) {
        if (inputs[i].checked != true) {
          inputs[i].checked = true;
        }
      /* If defeault not checked, but state is checked, uncheck it */
      } else {
        if (inputs[i].checked == true) {
          inputs[i].checked = false;
        }
      }
    }  
}
</script>

推荐