页面刷新时复选框保持选中状态

问题描述 投票:0回答:6

这是一个非常简单的问题(我认为)。 可能是转发,但我在这里找不到答案......所以我们开始吧。

我在页面上有一个复选框,我希望默认为“未选中”(除非我在 php 中另外指定)。

当我刷新页面时,如果选中该框,它将保持选中状态,这是没有好处的,因为选中该框会通过附加到该框的函数将 dom 元素添加到我的页面。所以问题是,如果我刷新,该框仍然被选中,但 dom 元素不存在(因为我还没有触发该函数,并且我不想这样做,除非用户选中该复选框)但该框是ALREADY 已选中,我最终到达了相反的地方,其中 UN 选中该框会创建我的 dom 元素,选中它会删除它。

基本上,问题是...

有没有一种方法可以在没有 JavaScript 的情况下将复选框默认为未选中?

顺便说一句,我没有在 FF 3.5.10 以外的任何浏览器中检查过(没有双关语)

html checkbox
6个回答
11
投票

参见 http://weblogs.mozillazine.org/gerv/archives/2006/10/firefox_reload_behaviour.html (第一条评论):

这是故意这样做的,所以如果你点击刷新按钮,你就会 不要丢失你的工作。 Bugzilla 中有一个条目是 已 WONTFIXed 要求定期刷新以始终重置表单 完全。基本上这是一个向后兼容的东西——每个 自 NS1.0(甚至 Mosiac)以来的浏览器已经做到了这一点。

动态生成的页面甚至不会自行重置,但如果 过期时间设置为 0 并且您点击后退按钮,它会给您一个 新鲜的形式。此外,如果表单本身发生变化(添加或删除元素, 更改操作等) for 将在重新加载时重置。我没有 测试了它,但将表单名称设置为随机名称(假设您 不需要 JS 访问的名称)可能会起作用。就像 PHP 中的 ”> 一样。

正如您所说,强制刷新会清除表单,而重置它会清除表单 也。想做点什么 你想要什么(再次强调,未经测试)?


10
投票

这适用于 ie 自动完成=“关闭”


3
投票

当然:

document.getElementById('my_checkbox').checked = false;

哎呀,我错过了关于没有 JS 的部分。据我所知,Firefox 会在刷新时保留页面状态,所以我想没有其他办法了。


2
投票

事实上,您只需添加带有属性

<form>
autocomplete="off"
标签:

<form autocomplete="off">
     <label for="checkbox">
          <input type="checkbox" id="checkbox">
     </label>
</form>

1
投票

可以直接在输入标签上使用参数 autocomplete="off"


0
投票

这是我发现的唯一能完成这项工作的!

© www.soinside.com 2019 - 2024. All rights reserved.