Layui如何实现表单Input输入框带有清空按钮(X)

星降

星降

2026-07-22

718人浏览

原创

Layui不支持type="search",因其默认不接管其清除按钮,导致Firefox下图标偏移、热区小、样式脱节,且form.render()无法识别,使lay-verify失效、form.val()取不到新值、联动中断;必须用type="text"配合自定义layui-icon-clear图标,同级插入并绝对定位,监听input事件控制显隐,点击时清空值并触发change或input事件以同步表单状态。

为什么直接用 type="search" 不行

layui 默认不接管 type="search 的清除按钮,firefox 下图标偏移、点击热区小,样式和整体 ui 脱节;更关键的是 form.render() 完全不识别它,导致 lay-verify 验证失效、form.val() 拿不到新值、联动逻辑中断。

必须用 type="text" + 自定义 layui-icon-clear

核心是保持 input 类型为 text,手动插入图标并控制显隐与行为:

  • 图标必须和 <input> 同级(不能塞进 input 里),推荐放在 <div class="layui-input"> 内部紧邻 input 右侧 <li>图标加 <code>style="position: absolute; right: 10px; top: 50%; transform: translateY(-50%); cursor: pointer; z-index: 2;" 实现覆盖定位
  • 监听 input 事件:值非空时 clearBtn.style.display = 'inline-block',为空时设 'none'
  • 点击图标时执行:input.value = '' + input.focus() + input.dispatchEvent(new Event('input'))(原生方式)或 $(input).val('').trigger('change')(jQuery 方式)
  • 务必加 e.stopPropagation(),避免点击图标触发父容器的 click 或表单 submit
  • 清空后 form.val() 还是旧值?检查这三点

    这是最常踩的坑——UI 清了,但表单模块缓存没更新,提交时仍发旧数据:

    layui手机车牌号码键盘代码
    layui手机车牌号码键盘代码

    layui手机车牌号码键盘代码是一款基于jQuery跟layui制作的手机端车牌号码输入弹出键盘选择,支持新能源汽车车牌输入格式代码。

    下载
    • 只改 input.value$(input).val('') 不够,必须触发 changeinput 事件(Layui 表单值同步完全依赖这个事件)
    • 如果 input 已注册 lay-verify,清除后验证状态不会自动重置,需手动调 form.validate('filterName') 或等下次提交时校验
    • 动态生成的搜索框(如表格工具栏内),建议用事件委托:$(document).on('click', '.layui-icon-clear', handler),避免绑定丢失

    带 Layui 组件(select/date)的搜索区域如何一键清空

    单纯清 input 不等于清整个搜索条件,尤其是表格重载时 where 参数容易残留:

    • 先统一用 form.val('searchForm', {}) 清所有已注册字段,再调 form.render()(对 select/date/checkbox 等组件,需额外 form.render('select')laydateIns.setValue('')
    • 表格重载必须显式传 where: {}(空对象,不是 nullundefined),否则继承上次缓存
    • 重置按钮务必写成 <button type="button"></button>,防止在 <form></form> 内被浏览器默认当 submit 处理

    真正难的不是加那个 × 图标,而是让它的点击行为完整走通 Layui 的事件链、缓存机制和组件生命周期——漏掉 trigger('change')form.render(),就等于只动了皮毛。

相关文章

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

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

下载

相关标签:

layui layui表单

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

相关专题

更多
python是前端还是后端
python是前端还是后端

Python属于前端也属于后端,其灵活性和丰富的生态系统使得开发人员能够在不同的领域中灵活运用。本专题为大家提供python相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.11

1111

5

前端如何实现即时通讯
前端如何实现即时通讯

实现即时通讯的方法有WebSocket、Long Polling、Server-Sent Events、WebRTC等等。详细介绍:1、WebSocket,它可以在客户端和服务器之间建立持久连接,实现实时的双向通信,前端可以使用 WebSocket API来创建WebSocket连接,并通过发送和接收消息来实现即时通讯;2、Long Polling,是一种模拟实时通信的技术等等。

2023.10.09

2285

6

前端和后端的区别
前端和后端的区别

前端关注的是用户界面的设计和交互,而后端则注重数据处理和逻辑控制。想了解更多前端后端的相关内容,可以阅读本专题下面的文章。

2024.03.19

2155

13

php和前端的关联介绍
php和前端的关联介绍

php既可以作为前端语言,也可以作为后端语言。想了解更多php和前端的相关内容,可以阅读本专题下面的文章。

2024.03.22

2346

10

前端外包工作内容有哪些
前端外包工作内容有哪些

前端外包工作内容包括:1. 网站和应用程序开发;2. 用户界面和交互设计;3. 用户体验优化;4. 设计和视觉开发;5. 跨浏览器兼容性;6. 性能优化;7. 维护和更新;8. 项目管理和沟通。想了解更多前端的相关内容,可以阅读本专题下面的文章。

2024.05.22

357

5

PyCharm安装配置教程合集
PyCharm安装配置教程合集

本专题汇总了PyCharm的完整安装部署与配置教程,涵盖从官网下载到Windows/Mac/Linux各平台安装包的选择与安装过程、环境变量配置及虚拟环境创建。同时整理了PIP镜像源更换、必要插件推荐、界面汉化等优化技巧,并附快捷键使用指南,助你快速搭建高效Python开发环境。

2026.08.05

0

19

Qt Creator编译运行使用教程
Qt Creator编译运行使用教程

围绕 Qt Creator 编译、运行、构建错误、断点调试、变量查看、调用栈、Debug与Release切换、编译输出和运行日志展开,帮助用户处理程序无法运行、断点不生效、找不到库文件、构建失败等问题。

2026.08.05

2

10

Qt Creator按钮响应设置方法
Qt Creator按钮响应设置方法

信号槽是 Qt 开发的核心机制。本专题整理 Qt Creator 中按钮点击、菜单触发、输入变化、窗口事件、自定义信号、自动连接槽函数和手动 connect 写法,帮助用户理解界面控件如何和 C++ 代码联动。

2026.08.05

0

10

Qt Creator新建项目使用教程
Qt Creator新建项目使用教程

本专题整理 Qt Creator 新建项目、打开已有工程、项目模板选择、目录结构、源文件管理、构建目录、运行配置和项目迁移方法,重点解决新手不知道选 qmake 还是 CMake、项目打不开、文件不参与编译等常见问题。

2026.08.05

0

10

热门下载

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

精品课程

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

共87课时 | 11.4万人学习

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

共89课时 | 9.7万人学习

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

共5课时 | 1.5万人学习