EJS中点击reset按钮无法清空查询条件输入框的问题求助
问题解决:Reset按钮无法清空查询条件
问题原因
document.setting依赖表单设置name="setting"属性,若表单未配置该属性,将无法正确获取输入框元素。- 当前代码未处理下拉选单
warehouse_id的重置逻辑。 - 原生
<input type="reset">的默认行为是将表单恢复到页面加载时的EJS渲染初始值,而非清空状态,会与自定义清空逻辑冲突。
修复方案
完整修改后的Reset按钮事件代码
<script> var reset = document.getElementById("resetbtn"); reset.addEventListener("click", function(e) { // 阻止原生reset默认行为,避免恢复到EJS渲染的初始值 e.preventDefault(); // 移除查询结果(加判断避免元素不存在时报错) var tmain = document.getElementById("tmain"); var pagingul = document.getElementById("pagingul"); if(tmain) tmain.remove(); if(pagingul) pagingul.remove(); // 清空三个输入框 document.querySelector('input[name="part_id"]').value = ""; document.querySelector('input[name="lotno"]').value = ""; document.querySelector('input[name="part_name"]').value = ""; // 重置下拉选单到默认的*选项 document.getElementById("warehouse_id").value = "*"; }, false); </script>
关键优化点
- 改用
document.querySelector/getElementById直接获取元素,避免依赖不确定的document.setting引用。 - 调用
e.preventDefault()阻断原生reset的默认行为,确保自定义清空逻辑生效。 - 给DOM元素移除操作增加存在性判断,防止页面无查询结果时抛出空指针错误。
内容的提问来源于stack exchange,提问作者kj0511y
相关产品推荐
相关产品推荐

