form表单 异步校验 防抖

防抖节流的简单实现 文章目录前言一、防抖测试二、节流测试三、防抖的业务场景:四、节流的业务场景 前言 防抖debounce,好比坐电梯,进来一个人,就得多等几秒。 节流throttle,好比等红绿灯,时间一到,就过一批人。时间没到多来一个人也不影响。 HTML+CSS <h2>防抖</h2> <div id="div1">0</div> <p></p> <h2>节流</h2> <div id="div2 阅读详情

日常开发会遇到一些 ,需要异步校验 ,这个时候就需要 使用防抖来控制调后端接口的次数。

主角 防抖

//防抖(基础版本)
const debounce = (fn: any, delay = 500) => {
    return (...rest: any) => {
      let args = rest;
      if (timer) clearTimeout(timer);
      setTimer(
        setTimeout(() => {
          fn.apply(this, args);
        }, delay),
      );
    };
  };

异步校验方法

const MaterialPromise = (code: any) => {
    console.log(code, 'code');
    return new Promise((resolve: any, reject: any) => {
      getMaterialCode({ productId: code }) //异步调用
        .then((res: any) => {
          const { data } = res;
          console.log(data);
          if (!data) {
            resolve('网络异常');
          }
          if (data.code !== '0000001') {
            resolve(data.desc);
          }
          resolve('success');// 成功返回
        })
        .catch(e => {
          reject(e);
        });
    });
  };

const checkMateriCode = async (rule: any, value: any, callback: any) => {
    console.log('----------------------校验-------------------');
    if (!value) {
      return callback('请输入数值');
    }
    let reg = /^[A-Z0-9]+$/;
    if (!reg.test(value)) {
      return callback('请输入正确格式大写字母及数字');
    }
    const res = await MaterialPromise(value); //异步校验(拉出去单独)
    if (res === 'success') {
      callback();
    } else {
      callback(res);
    }
    callback();
  };

万事齐备只欠东风  调用 校验防抖

<Form.Item
            name="MaterialCode"
            label="参数"
            rules={[
              {
                required: true,
                validator: debounce(checkMateriCode, 2000), //调用防抖方法 组合
              },
              // { required: true, validator: checkMateriCode },
            ]}
          >
            <Input placeholder="请输入原物料代码"/>
          </Form.Item>

以上自己的 操作  如有更好的 请分享  

thank!!

antdv a-form的校验方式(手把手 附送上传boundary二进制流方法) a-form校验解决方式(手把手) 阅读详情

相关推荐

少小白学前端——JS篇(防抖与节流)

本文主要是介绍防抖和节流函数,包括如何构建,怎样在react和vue中使用,以及它们的一些应用场景

Another_World_Naraku的博客 2791

element 表单验证带上防抖及后台验证

记录日常,笔记作用 <el-form ref="form" label-position="right" label-width="107px" :model="form" :rules="rules" > <el-form-item label="组织编码" prop="deptCode"> <el-input v-model="form.deptCode" clearable />

qq_36364963的博客 1641

深入解析antd form validateFields:精准校验与场景化应用指南

本文深入解析antd Form组件的validateFields方法,详细介绍其核心机制、基础用法与常见误区,以及高级校验场景实战。通过精准校验指定元素和场景化应用指南,帮助开发者提升表单交互体验,优化性能并处理复杂校验需求。

weixin_38166852的博客 427

Vue+element-ui中form表单table自适应问题解决方案+防抖

Vue+element-ui自适应问解决方案+防抖 2. 将绑定的变量写在vue的data中 3. 在methods中写入以下方法 tableHeightAdaptive() { // 获取id为elTable的元素 let elTable = document.getElementById('elTable') if (!elTable) { return } // 预留大小 自行按需调整 let r

提笔忘字的帝国 3100

OSNet代码解析(普通卷积,分组卷积,深度可分离卷积,OSblock组成)

文章目录普通卷积和分组卷积普通卷积和深度可分离卷积用深度可分离卷积(LightConv3x3)代替普通卷积(Conv3x3)减少参数OSBlock (bottleneck)OSNet OSNet之所以轻量(2.2M)在于网络浅,使用深度可分离卷积代替传统卷积,但是很有效 普通卷积和分组卷积 所谓分组卷积,就是右图的input features分成一组一组,如上图groups=3,那么输入的特征分成3组,每组有12/3=4的通道的特征参与输出。然后根据输出通道的维度,得到每组的输入特征要计算两次(6/3=2

Mr_DaYang的博客 9801

Mamba vs YOLO:目标检测选型指南(附实际项目对比)

本文深入对比了Mamba和YOLO在目标检测领域的性能差异与应用场景。通过实际项目数据,分析了两者在城市交通监控、工业质检等场景下的表现,提供了详细的选型指南和部署优化建议,帮助开发者根据实时性、精度等需求选择最适合的解决方案。

weixin_29062255的博客 368

3分钟跑通 Hermes DeepSeek 接入:2 条命令 + 5 次选择完成全流程

本文带你走一遍 Hermes DeepSeek 接入的完整流程:2 条命令、5 次向导选择,3 分钟内让自我进化 AI Agent Hermes 跑在 `deepseek-v4-pro` 模型上。照着做即可,无需翻其他资料。 ## 自我进化 Agent Hermes 与 DeepSeek 模型搭配有什么用 Hermes 是 Nous Research 出品的开源 AI Agent,核心卖点是内

gitblog_01022的博客 496

S型速度曲线C程序实现

S型速度曲线C语言程序实现 前言 S型曲线相较于梯形速度曲线具有运行更加平稳的特点,S型曲线共有八种运行情况,感兴趣可以查阅相关文献 代码段 #include <stdio.h> #include <math.h> #define FP64 double int main(void) { /**************************** 定义相关变量(需要映射到PLC寄存器才能进行监控) ***********************/ FP6

LSX312441548的博客 8392

Ant Design Form 校验时机控制实战:validateTrigger / validateDebounce / validateFirst 详解

在 Form 的异步校验场景下,若字段值每变更一次便触发一次远程校验,频繁的请求会给后端带来不必要的压力。Ant Design 在 `Form.Item` 上提供了 `validateTrigger`、`validateDebounce` 与 `validateFirst` 三个属性,分别用于控制**校验触发时机**、**校验触发频率**与**校验短路行为**。本文以仓库中 [validate-t

gitblog_00828的博客 755

④ Django创建用户中心应用users,扩展用户信息

本章配套视频教程 Django创建用户中心应用users,扩展用户数据 在settings.py文件中配置项目 1、语言配置:LANGUAGE_CODE = 'zh-hans’ 2、时区配置:TIME_ZONE = 'Asia\Shanghai’ 3、模板路径配置:‘DIRS’: [os.path.join(BASE_DIR, ‘templates’)], 并创建templates文件

轻编程的博客 672

基于Simulink的压缩空气储能(Compressed Air Energy Storage, CAES)

压缩空气储能(CAES)是一种将电能转化为压缩空气存储在高压容器中,然后在需要时释放空气驱动涡轮机发电的技术。它具有大规模、长寿命和环境友好的特点,在电力系统中用于削峰填谷、频率调节和备用电源等应用。本项目将详细介绍如何在MATLAB/Simulink中搭建一个完整的基于压缩空气储能的系统,并提供具体的代码实现和设计步骤。如果你需要实现更复杂的控制逻辑,可以使用MATLAB Function模块。以下是一个简单的例子,展示了如何在该模块中实现一个条件逻辑:Matlab深色版本Kp = 1;

MHD0815的博客 1274

React表单校验提示实战:从手写到React Hook Form与异步校验

表单校验是前端开发中的高频场景,尤其在React项目里,提示时机、触发粒度与错误信息的生命周期管理往往比写一行红字更复杂。受控组件与非受控组件的选择,直接影响表单的性能与维护成本。手写校验方案适合字段少、逻辑简单的场景,而React Hook Form凭借非受控机制和优秀的TypeScript支持,成为中大型项目的优选方案。通过注册字段、Controller桥接自定义组件,配合防抖与竞态处理,可以实现用户名唯一性这类异步校验的流畅体验。本文从基础概念到工程实践,梳理表单提示的设计思路与常见坑位,帮助开发者快

weixin_29001327的博客 156

[QMT量化交易小白入门]-二、如何用miniQMT获取沪深A股的板块列表、历史行情数据和实时行情数据

本专栏主要是介绍QMT的基础用法,常见函数,写策略的方法,也会分享一些量化交易的思路,大概会写100篇左右。QMT的相关资料较少,在使用过程中不断的摸索,遇到了一些问题,记录下来和大家一起沟通,共同进步,自己淋过雨了,希望大家都有一把伞。

木头大左的博客 5656

Vue.js 异步表单验证最佳实践:vue-form 中 Promise 校验与防抖的 5 个实用技巧

vue-form 是一款面向 Vue.js 2.2+ 的轻量级表单验证库。本文带你掌握 vue-form 中的异步表单验证:如何编写基于 Promise 的验证函数、利用内置防抖(debounce)减少无效请求,以及如何正确响应 `$pending` 状态,让你快速写出体验丝滑的 Vue 表单。 ## 为什么需要异步表单验证 🤔 注册表单里常见的"用户名是否已被占用"、"邮箱是否已注册"这类

gitblog_00454的博客 416

PyTorch深度学习实战(47)——使用PyTorch构建Transformer模型

相较于传统模型,如循环神经网络 (RNN),Transformer 的优势在于能够理解输入和输出序列中元素之间的关系,在大语言模型 (如 ChatGPT 和 DeepSeek) 的发展中起到了关键作用,为了从零开始构建 Transformer,首先探讨自注意力机制,包括查询 (query)、键 (key) 和值 (value) 向量,以及缩放点积注意力 (SDPA)。将层归一化和残差连接集成到多头注意力层中,并与前馈层结合,构建编码器层,堆叠编码器层构建编码器,还将实现 Transformer 中的解码器。

盼小辉丶的博客 3万+

QMK固件OLED显示屏配置教程:从零开始实现个性化键盘显示(实操部分)

本教程详细介绍了如何从零开始配置QMK固件的OLED显示屏,实现个性化键盘显示。首先,文章解释了OLED显示屏的基本概念及其在键盘中的应用,并介绍了I2C和SPI两种通信方式。接着,教程逐步指导用户如何在QMK固件中启用OLED功能,包括在rules.mk中启用OLED、在halconf.h和mcuconf.h中配置I2C功能,以及在config.h中设置I2C和OLED参数。最后,教程展示了如何在keymap.c中编写代码,实现OLED显示内容,并提供了进阶定制功能,如显示当前层信息、按键状态和QMK L

Despacito0o的博客 580

WPF 绑定验证(Binding Validation)实战:基于 WPF-Samples 的 BindValidation 示例详解

本篇技术指南以 WPF-Samples 仓库中的 [BindValidation 示例](https://link.gitcode.com/i/949dae6a213fd4799807029f22964724) 为核心,系统讲解如何在 WPF 的**用户界面(UI)层**通过数据绑定(Binding)实现输入校验。你将掌握自定义 `ValidationRule` 的编写、`Validation.E

gitblog_00009的博客 377

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

前端各框架表单最佳实践

表单提交规范 表单提交是用户主动触发的一种操作,用于搜集不同类型的用户输入。 在开发早期没有 ajax,主要依靠 form 表单通过编辑 action, method 属性通过页面跳转完成数据的收集 现代 form 表单更多的是指 JS 对象中的 form 对象,通过劫持其 onSubmit 事件进行数据校验和提交 注意事项 表单提交应是多方位触发的 表单提交都应由表单的 submit 事件触发,它可能是由 Button(type:submit)| input(type:submit)按钮,在表单直接按下回

xuewenjie0217的博客 1092

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

TanStack Form + Svelte 实战:从零构建一个带校验、异步验证与条件字段的简单表单

本篇文章以仓库中 [examples/svelte/simple](https://link.gitcode.com/i/330af5b595c8b3b7f7809bdc243d4ab2) 这个官方最小示例为主体,完整讲解如何在 Svelte(搭配 Vite 与 TypeScript)中接入 TanStack Form,实现一个包含文本输入、复选框、条件字段、同步/异步校验、错误提示、提交状态与重

gitblog_00312的博客 13

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

别再只会全表单校验了!Ant Design Form 的 validateFields 三种用法保姆级拆解

本文深入解析Ant Design Form组件中validateFields的三种高阶用法,包括全量校验、指定字段校验和带选项的校验模式。通过实战案例和性能优化策略,帮助开发者在复杂业务场景中高效处理表单验证,提升用户体验和开发效率。特别适合需要精细控制表单校验的前端开发者。

weixin_30421809的博客 359

Flutter鸿蒙跨平台表单验证:从基础架构到异步防抖实战

在跨平台应用开发中,表单验证是用户体验的关键环节,而鸿蒙等新平台的适配又为其增添了新的复杂度。Flutter 提供了一套由 Form、GlobalKey 和 TextFormField 协同工作的表单机制,但要让验证逻辑真正融入业务,还需要理解 validator 的同步边界、autovalidateMode 的时机控制,以及正则与自定义规则的应用。更进阶的场景中,异步校验与并发处理成为产品级表单的分水岭,借助 ValueNotifier、防抖和自增序号能有效规避竞态问题。同时,错误提示、焦点联动与键盘遮挡

weixin_33793620的博客 327

别再只会写required了!Element UI Form表单rules的10个高级玩法(含自定义校验函数)

本文深入探讨Element UI Form表单rules的10个高级玩法,包括数据预处理、深层对象校验、跨字段联动等技巧,帮助开发者突破基础required校验的限制。通过自定义校验函数和动态规则生成,实现更灵活的表单验证方案,提升开发效率和用户体验。

weixin_33690963的博客 281

从‘邮箱验证’到‘分步提交’:深入理解antd 4.x Form组件中validateFields的三种高阶玩法

本文深入探讨了antd 4.x Form组件中validateFields的三种高阶用法,包括指定字段校验、带options的智能校验和分步提交的全量校验。通过用户注册流程的实战案例,展示了如何实现邮箱验证、密码一致性检查等复杂表单校验需求,帮助开发者提升中后台系统的表单处理能力与用户体验。

weixin_30911451的博客 598

Flutter表单校验与鸿蒙适配:TextFormField高级验证技巧

表单校验是现代应用开发中绕不开的基础环节,而跨平台框架下的表单体验往往涉及状态管理、异步并发与平台差异等多重挑战。Flutter作为跨平台开发框架,其TextFormField组件通过Form与FormField的协作,提供了灵活可扩展的校验机制:开发者既可以基于validator实现同步规则,也能利用onChanged和Timer组合完成防抖异步校验,从而兼顾实时反馈与性能开销。深入理解这些原理,能够大幅提升复杂表单的开发效率与稳定性。在鸿蒙生态逐步融入跨平台体系的背景下,基于Flutter构建的表单不但

weixin_29001683的博客 326

Element UI 的 el-input组件触发 blur事件

事件时,需结合 Vue 的事件监听机制和 Element UI 的组件特性。事件中执行复杂计算或频繁的 DOM 操作,可使用防抖(Debounce)减少触发频率。的失焦行为,适用于表单提交、实时校验、搜索联想等场景。若需通过代码主动触发失焦(如回车键触发),需结合。是 Vue 的事件监听指令,直接绑定到。在 Element UI 的表单校验中,监听失焦事件,当输入框失去焦点时触发。修饰符时,仅对原生 DOM 事件有效。),需确保事件绑定在正确的元素上。事件是触发校验的关键。事件触发时执行(需在。

wobenwoxiangfei的博客 430

calidation:解耦React表单校验与渲染的纯函数验证器

表单验证是前端开发的基础能力,其本质是输入数据与业务规则之间的逻辑判定。传统方案常将校验逻辑耦合在React渲染周期中,导致频繁re-render、输入延迟与竞态问题。calidation通过纯函数式API(如validate(field, value))将校验还原为无副作用的同步计算任务,实现校验时机与UI更新的彻底解耦。它不绑定任何状态管理机制,可无缝集成useState、useReducer或Zustand,更支持动态规则、异步防抖及服务端错误映射。适用于高性能表单、跨框架复用与Web Worker离

weixin_30266885的博客 481
上一篇: nginx(window配置)
下一篇: css 文字超出隐藏
fineworkmanship
博客等级 码龄6年 7粉丝 20原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值