Layui数据表格如何实现搜索重置按钮的一键清空

夜静吖_9461

夜静吖_9461

2026-08-03

752人浏览

原创

重置按钮必须用type="button",否则会触发表单提交;清空表单需form.val()与form.render()配合;table.reload()必须传where: {}和page: {curr: 1}。

重置按钮必须用 type="button",否则会触发表单提交

很多重置按钮写成 ,结果一点就刷新页面或清空整个表单 dom。这是浏览器默认行为:没声明 type 就当 submit 处理。layui 渲染的 select、date 等组件依赖 dom 结构,一刷新就全崩。

实操建议:

  • 重置按钮务必显式写成
  • 别把重置逻辑塞进 form.on('submit(filterName)') —— 那是给搜索用的,和重置无关
  • 如果搜索区在 layer.open 弹窗里,也要确认按钮不会意外触发父页面表单

form.val() 清值 + form.render() 刷 UI,两步不能少

form.val('searchForm', {}) 只改数据层,UI 不变;form.render() 只刷界面,值还是旧的。两者缺一不可,顺序也不能反。

常见错误现象:

  • 下拉框显示文字没变,但 form.val() 已读到空值 —— 这是没调 form.render('select', 'searchForm')
  • 日期控件输入框清空了,但内部状态没重置 —— 必须提前保存 laydateIns 实例,再调 laydateIns.setValue('')
  • 带 lay-affix="clear" 的 input 点清除图标后,form.val() 仍读旧值 —— 要手动触发 inputEl.trigger('change')

table.reload() 必须传 where: {},否则搜索参数还在

Layui 表格实例内部缓存了上次请求的 where 对象。table.reload('tableId') 不传参时,它直接复用这个缓存 —— 即使你刚把所有 input 清空,请求里照样带着旧的 keyword、status。

深蓝色网站后台管理系统layui框架模板-AdminPro
深蓝色网站后台管理系统layui框架模板-AdminPro

一款深蓝色网站后台管理系统layui框架模板

下载

实操要点:

  • where: {} 是唯一有效写法;where: null、where: undefined、甚至 where: { keyword: '' } 都不行
  • 一定要同步加 page: { curr: 1 },否则用户可能卡在第 5 页,而新请求没数据,页面空白
  • 如果用了级联下拉(如省份→城市),字段名(province、city)必须和 form.val() 里注册的一致,否则 where 里根本没这些键

动态生成的搜索表单容易漏掉模块加载和 lay-filter 匹配

表单是 AJAX 拼好再插入的,或者用 JS 动态创建的,form.render() 很容易失效 —— 不是因为代码错,而是时机或作用域问题。

排查重点:

  • 确保重置逻辑包裹在 layui.use(['form'], function(){}) 里,否则 form 是 undefined
  • DOM 必须已挂载到页面上,再调 form.render();拼完 HTML 后立刻渲染,元素还没插入,就找不到目标
  • form 标签的 lay-filter="searchForm" 和 JS 里 form.val('searchForm', {}) 的字符串必须完全一致,多一个短横线、大小写不对都失败

真正难的不是写几行代码,而是三件事必须严格同步:表单 UI 状态、本地内存里的字段值、表格下次请求的实际参数。漏掉任何一环,用户就会看到“点了重置,但搜索框还留着字”“清空了下拉,表格却还按旧条件查”。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
ajax教程
ajax教程

php中文网为大家带来ajax教程合集,Ajax是一种用于创建快速动态网页的技术。通过在后台与服务器进行少量数据交换,Ajax可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。php中文网还为大家带来ajax的相关下载资源、相关课程以及相关文章等内容,供大家免费下载使用。

2023.06.14

3180

4

ajax中文乱码解决方法
ajax中文乱码解决方法

ajax中文乱码解决方法有设置请求头部的字符编码、在服务器端设置响应头部的字符编码和使用encodeURIComponent对中文进行编码。本专题为大家提供ajax中文乱码相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.31

360

5

ajax传递中文乱码怎么办
ajax传递中文乱码怎么办

ajax传递中文乱码的解决办法:1、设置统一的编码方式;2、服务器端编码;3、客户端解码;4、设置HTTP响应头;5、使用JSON格式。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.11.15

2993

5

ajax网站有哪些
ajax网站有哪些

使用ajax的网站有谷歌、维基百科、脸书、纽约时报、亚马逊、stackoverflow、twitter、hacker news、shopify和basecamp等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.09.24

1161

6

Vite 项目如何打包和部署
Vite 项目如何打包和部署

Vite项目打包部署专题汇集生产构建、产物预览、输出目录、资源路径、Nginx与GitHub Pages部署及常见白屏和路由404问题的已审核文章,帮助读者完成上线流程。

2026.10.28

80

16

Vite 如何搭配 Vue.js
Vite 如何搭配 Vue.js

Vite搭配Vue.js专题汇集创建Vue 3项目、配置开发环境、路径别名、Vue插件、代理、多环境构建与调试的已审核文章,帮助读者完成从初始化到日常开发的配置。

2026.10.28

60

15

Vite 项目目录怎么看
Vite 项目目录怎么看

Vite项目目录专题汇集入口文件、src源码、public静态资源、路径别名、项目根目录和构建输出目录相关的已审核文章,帮助读者理解各文件夹的用途与引用方式。

2026.10.28

220

10

Gradle插件开发入门教程
Gradle插件开发入门教程

本专题介绍Gradle插件开发的基本流程,涵盖插件类编写、自定义任务注册、扩展参数设计和插件应用方法,帮助你理解插件如何组织构建逻辑,减少多个项目之间的重复配置。

2026.10.22

140

11

Gradle Wrapper配置教程
Gradle Wrapper配置教程

本专题介绍Gradle Wrapper的基本作用,涵盖文件组成、生成方法、版本配置和任务调用,帮助你理解项目如何使用指定的Gradle版本,减少不同开发环境带来的构建差异。

2026.10.22

120

10

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
ThinkPHP配置开发与CMS后台实战
ThinkPHP配置开发与CMS后台实战

共87课时 | 13.1万人学习

第二十三期_综合实战
第二十三期_综合实战

共89课时 | 11.4万人学习

Layui 快速入门精讲
Layui 快速入门精讲

共5课时 | 1.6万人学习