这是一个非常简单的问题(我认为)。 可能是转发,但我在这里找不到答案......所以我们开始吧。
我在页面上有一个复选框,我希望默认为“未选中”(除非我在 php 中另外指定)。
当我刷新页面时,如果选中该框,它将保持选中状态,这是没有好处的,因为选中该框会通过附加到该框的函数将 dom 元素添加到我的页面。所以问题是,如果我刷新,该框仍然被选中,但 dom 元素不存在(因为我还没有触发该函数,并且我不想这样做,除非用户选中该复选框)但该框是ALREADY 已选中,我最终到达了相反的地方,其中 UN 选中该框会创建我的 dom 元素,选中它会删除它。
基本上,问题是...
有没有一种方法可以在没有 JavaScript 的情况下将复选框默认为未选中?
顺便说一句,我没有在 FF 3.5.10 以外的任何浏览器中检查过(没有双关语)
参见 http://weblogs.mozillazine.org/gerv/archives/2006/10/firefox_reload_behaviour.html (第一条评论):
这是故意这样做的,所以如果你点击刷新按钮,你就会 不要丢失你的工作。 Bugzilla 中有一个条目是 已 WONTFIXed 要求定期刷新以始终重置表单 完全。基本上这是一个向后兼容的东西——每个 自 NS1.0(甚至 Mosiac)以来的浏览器已经做到了这一点。
动态生成的页面甚至不会自行重置,但如果 过期时间设置为 0 并且您点击后退按钮,它会给您一个 新鲜的形式。此外,如果表单本身发生变化(添加或删除元素, 更改操作等) for 将在重新加载时重置。我没有 测试了它,但将表单名称设置为随机名称(假设您 不需要 JS 访问的名称)可能会起作用。就像 PHP 中的 ”> 一样。
正如您所说,强制刷新会清除表单,而重置它会清除表单 也。想做点什么 你想要什么(再次强调,未经测试)?
这适用于 ie 自动完成=“关闭”
当然:
document.getElementById('my_checkbox').checked = false;
哎呀,我错过了关于没有 JS 的部分。据我所知,Firefox 会在刷新时保留页面状态,所以我想没有其他办法了。
事实上,您只需添加带有属性
<form>
的 autocomplete="off"
标签:
<form autocomplete="off">
<label for="checkbox">
<input type="checkbox" id="checkbox">
</label>
</form>
可以直接在输入标签上使用参数 autocomplete="off"
这是我发现的唯一能完成这项工作的!