You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

点击按钮重置表单输入:复选框无法取消勾选的问题

解决复选框无法重置的问题

哦,我知道问题出在哪了!你现在处理复选框的方式不对,因为复选框的选中状态压根不是靠value属性来控制的~

问题原因

文本输入框的内容是通过value和defaultValue来维护的,所以你重置文本框的代码是有效的。但复选框的defaultValue其实是它提交时的默认取值(通常是"on"),和它是否被选中完全无关。要控制复选框的选中状态,得用checked属性,而它的默认选中状态存在defaultChecked这个属性里——这个属性会记录页面加载时复选框的初始状态。

修改后的代码

把你处理复选框的那行代码替换掉就行,完整代码如下:

<button id="reset">reset</button>
<script type="text/javascript">
  document.getElementById('reset').onclick = function() {
    var field = document.getElementById('textbox1');
    field.value = field.defaultValue;
    
    var field = document.getElementById('textbox2');
    field.value = field.defaultValue;
    
    var field = document.getElementById('agreecheckbox');
    field.checked = field.defaultChecked; // 这里是关键修改
  };
</script>

额外小建议

其实你还可以用表单自带的reset()方法来一键重置所有表单元素,这样代码更简洁。只要把这些输入框放在一个<form>标签里,然后调用表单的reset方法就行:

<form id="myForm">
  <input type="text" id="textbox1" defaultValue="默认值1">
  <input type="text" id="textbox2" defaultValue="默认值2">
  <input type="checkbox" id="agreecheckbox" defaultChecked>同意协议
  <button type="button" id="reset">reset</button>
</form>
<script type="text/javascript">
  document.getElementById('reset').onclick = function() {
    document.getElementById('myForm').reset();
  };
</script>

这个方法会自动把所有表单元素恢复到页面加载时的默认状态,不用一个个手动处理,省心很多~

内容的提问来源于stack exchange,提问作者gjames

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 08:38:13