HTML怎么实现后台管理系统的多条件筛选

夜宇大大_8283

夜宇大大_8283

2026-11-08

514人浏览

原创

多条件筛选应使用统一data-filter-key标记筛选项,包裹日期范围、用替代多checkbox,搜索按钮触发防抖请求并校验空值与状态,后端2xx且data存在才更新表格。

html怎么实现后台管理系统的多条件筛选

多条件筛选的 DOM 结构怎么组织才方便 JS 控制

直接用多个 和 拼一起不难,但关键在「可扩展性」和「状态同步」。推荐用统一的 data-filter-key 属性标记每个筛选项,值对应后端字段名(比如 data-filter-key="status"、data-filter-key="created_after"),避免 JS 里硬编码字段映射。

常见错误是把日期范围拆成两个独立 input 却没做联动校验——用户可能填了「开始时间 > 结束时间」,前端不拦截,后端返回 400 或静默过滤,体验断层。

建议做法:

  • 日期范围用一个
    包裹两个 ,并加 data-filter-key="created_range"
  • 状态多选用 而非一堆 checkbox,减少 DOM 节点,也方便取值为数组
  • 搜索按钮旁加「重置」按钮,点击后清空所有筛选项并触发一次空条件请求,别只清 UI 不清 JS 状态
  • JS 怎么把表单值转成合法的 API 查询参数

    浏览器原生表单提交会把空字符串、未选 、未勾选 checkbox 当作有效值传出去,后端要么报错,要么查出意外数据。必须手动收值 + 过滤。

    核心逻辑是:遍历所有带 data-filter-key 的元素,忽略空值(''、null、undefined、空数组),再按字段类型做归一化:

    • type="date" 且值非空 → 保留为 "2024-05-01" 字符串;若为范围,则合并为 { "gte": "2024-05-01", "lte": "2024-05-10" } 对象
    • → 取 selectedOptions,转成字符串数组,空数组跳过
    • 数值输入框(如 ID、页码)→ 用 Number() 转换,NaN 则丢弃
    • 搜索关键词输入框 → 去首尾空格,空则跳过

    示例片段:

    function getFilters() {
      const filters = {};
      document.querySelectorAll('[data-filter-key]').forEach(el => {
        const key = el.dataset.filterKey;
        let value;
    
        if (el.type === 'date' && el.hasAttribute('data-range-end')) {
          const start = document.querySelector('[data-filter-key="created_range"][data-range-start]');
          const end = el;
          if (start.value && end.value) {
            filters[key] = { gte: start.value, lte: end.value };
          }
          return;
        }
    
        if (el.tagName === 'SELECT' && el.multiple) {
          value = Array.from(el.selectedOptions).map(o => o.value);
          if (value.length === 0) return;
        } else {
          value = el.value?.trim();
          if (!value) return;
        }
    
        filters[key] = value;
      });
      return filters;
    }

    防抖 + 请求中状态反馈为什么不能省

    用户连点两次「搜索」,发两遍相同请求,后端压力白增,UI 还可能显示旧数据覆盖新结果。必须加防抖(推荐 300ms)+ 请求锁。

    使用华数设计生成高保真HTML原型、演示文稿、动画和设计评审
    使用华数设计生成高保真HTML原型、演示文稿、动画和设计评审

    使用经过文档化的设计技能,从真实的品牌或项目背景中生成HTML原生原型、幻灯片、动态演示、可视化图表和评审流程。

    下载

    更隐蔽的问题是:筛选项变化时(比如改了下拉框),立刻触发搜索,但用户还没选完——比如状态选了「待审核」,正要点「已通过」,中间一次无效请求就发出去了。

    解决方案:

    • 搜索按钮绑定点击事件,**不监听 input/change 实时触发**;只有用户明确点击才查
    • 按钮点击后立即 disabled,接口返回后再恢复,防止重复提交
    • 如果真要支持「输完回车即搜」,给 input 加 keyup.enter,但务必加防抖,且只对文本类输入生效(日期、下拉框不响应)
    • 加载中显示 skeleton 或「搜索中…」文字,别让界面静止不动

    后端返回空数组时前端该不该清空表格

    应该清,但得区分「无数据」和「请求失败」。常见错误是把 401、500、网络中断都当成「没查到」,清掉原有列表,用户以为筛选条件写错了,反复调。

    正确做法:

    • 仅当 HTTP 状态码为 2xx 且响应体中 data 字段存在(哪怕为空数组)时,才更新表格数据
    • 其他情况(包括超时、解析失败、status !== 200),保留上次成功数据,并在 UI 顶部用
      提示错误(比如「服务暂时不可用,请稍后重试」)
    • 不要自动重试,除非用户手动点击「重试」按钮;否则可能掩盖真实问题(比如筛选条件含非法字符导致 400)
    • 多条件筛选真正难的不是拼参数,而是边界状态的处理:空值含义、字段依赖(比如选了「部门」才显示「员工」下拉)、权限导致的字段隐藏。这些没法靠一套通用代码解决,得在每个筛选项上留好钩子,比如 data-required-if="dept_id"。

前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!

相关文章

HTML速学教程(入门课程)
HTML速学教程(入门课程)

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

下载

相关标签:

html多条件筛选 html

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

相关专题

更多
html版权符号
html版权符号

html版权符号是“©”,可以在html源文件中直接输入或者从word中复制粘贴过来,php中文网还为大家带来html的相关下载资源、相关课程以及相关文章等内容,供大家免费下载使用。

2023.06.14

7255

7

html在线编辑器
html在线编辑器

html在线编辑器是用于在线编辑的工具,编辑的内容是基于HTML的文档。它经常被应用于留言板留言、论坛发贴、Blog编写日志或等需要用户输入普通HTML的地方,是Web应用的常用模块之一。php中文网为大家带来了html在线编辑器的相关教程、以及相关文章等内容,供大家免费下载使用。

2023.06.21

4012

4

html网页制作
html网页制作

html网页制作是指使用超文本标记语言来设计和创建网页的过程,html是一种标记语言,它使用标记来描述文档结构和语义,并定义了网页中的各种元素和内容的呈现方式。本专题为大家提供html网页制作的相关的文章、下载、课程内容,供大家免费下载体验。

2023.07.31

3670

5

html空格
html空格

html空格是一种用于在网页中添加间隔和对齐文本的特殊字符,被用于在网页中插入额外的空间,以改变元素之间的排列和对齐方式。本专题为大家提供html空格的相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.01

3679

5

html是什么
html是什么

HTML是一种标准标记语言,用于创建和呈现网页的结构和内容,是互联网发展的基石,为网页开发提供了丰富的功能和灵活性。本专题为大家提供html相关的各种文章、以及下载和课程。

2023.08.11

5199

6

html字体大小怎么设置
html字体大小怎么设置

在网页设计中,字体大小的选择是至关重要的。合理的字体大小不仅可以提升网页的可读性,还能够影响用户对网页整体布局的感知。php中文网将介绍一些常用的方法和技巧,帮助您在HTML中设置合适的字体大小。

2023.08.11

3621

3

html转txt
html转txt

html转txt的方法有使用文本编辑器、使用在线转换工具和使用Python编程。本专题为大家提供html转txt相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.31

3429

3

html文本框代码怎么写
html文本框代码怎么写

html文本框代码:1、单行文本框【<input type="text" style="height:..;width:..;" />】;2、多行文本框【textarea style=";height:;"></textare】。

2023.09.01

2968

6

HTML嵌入CSS样式的方法
HTML嵌入CSS样式的方法

HTML嵌入CSS样式的方法有内联样式、内部样式表和外部样式表。本专题为大家提供CSS样式相关的文章、下载、课程内容,供大家免费下载体验。

2023.09.20

3128

5

热门下载

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

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
GDB 17.2 官方文档集合
GDB 17.2 官方文档集合

共0课时 | 0人学习

Bootstrap 入门安装配置
Bootstrap 入门安装配置

共0课时 | 0人学习

38+ PhpStorm 提示和技巧
38+ PhpStorm 提示和技巧

共1课时 | 237人学习