HTML 复选框刷新后仍保持选中状态

18

我的标记中有几个复选框... 例如:

<input type="checkbox" id="someCheckbox"/>

如果我使用Ctrl+Shift+R刷新页面,则一切正常 - 页面将呈现未选中的复选框,但是如果其中一些被选中并使用F5刷新,则它们将保持在以前的状态。

设置checked属性无效,因为只要有该属性,就足以使其选中,其值或多或少是无关紧要的。

请问如何在页面加载时强制取消选中所有复选框


1
一个粗略的搜索找到了这个链接:https://dev59.com/MXVC5IYBdhLWcg3wbQfA - Mitya
这听起来像是您的浏览器的一个功能,在意外重新加载时保留表单值。您真的有必要覆盖它吗? - Pekka
@Pekka웃 是的,否则我不会这样做。 - Dropout
3个回答

61

我找到了一种只使用HTML的方案。如果您在元素中添加autocomplete="off"属性,它将不会在刷新后设置先前的状态。

<input type="checkbox" id="foo" autocomplete="off"/>

我尝试过了,但对我来说现在不起作用,意思是刷新后会消失吗?rows.push('<tr><td><input type="checkbox" autocomplete="off" class="chkbox" name="chkbox" value="'+value.site+':'+value.client+'"></td><td>' + id + '</td><td>' + value.machine + '</td><td>' + value.state + '</td><td>' + value.date_processed + '</td><td><button type="button" onclick="resetSite(\''+ value.site+'\',\''+value.client+'\')">重置</td></tr>'); }); - Ratha
当您的目标是在页面重新加载或单击后退按钮时取消复选框时,这将非常有帮助。 - Andoy Abarquez
1
这真的救了我的一天。每天我们都在学习,我学到了这个重要的东西。谢谢你。 - Chipsy

2
你可以使用JavaScript将它们设置回去。
var elements = document.getElementsByTagName("INPUT");
for (var inp of elements) {
    if (inp.type === "checkbox")
        inp.checked = false;
}

-1
在HTML中,只有checked属性可以强制复选框保持选中状态。默认情况下,复选框未被选中。如果您想在加载后强制取消选中,则不要使用该属性。一个重要的事情有时也取决于浏览器。更多详细信息请参见http://www.w3schools.com/html/html_form_input_types.asp

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接