首页 > 其他分享 >点击内置变量,在文本框中插入,按下退回键或者删除键删除变量

点击内置变量,在文本框中插入,按下退回键或者删除键删除变量

时间:2024-07-25 17:06:51浏览次数:14  
标签:const 变量 删除 文本框 inputValue input startPos newValue endPos

效果: 代码:    

// 点击变量添加
 const handleTagClick = (param: any) => {
   const input: any = inputRef.current.input;
   if (input) {
     const startPos = input.selectionStart;
     const endPos = input.selectionEnd;


     const newValue = `${inputValue.substring(0, startPos)}{${param.label}}${inputValue.substring(
        endPos
     )}`;


     setInputValue(newValue);
     setTimeout(() => {
        input.setSelectionRange(
          startPos + param.label.length + 2,
          startPos + param.label.length + 2
       );
        input.focus();
     }, 0);
   }
  };


  // 返回键或者删除键 删除变量
  const handleKeyDown = (e: any) => {
   if (e.key === "Backspace" || e.key === "Delete") {
     let newValue = "";


     const input: any = inputRef.current.input;
     if (input) {
       const startPos = input.selectionStart;
       const endPos = input.selectionEnd;


       if (startPos === endPos) {
         const replaceStr = inputValue.substring(0, startPos).replace(/{[^}]+}$/, "");
          newValue = `${replaceStr}${inputValue.substring(endPos)}`;
         if (newValue !== inputValue) {
           // 重置光标位置
           setTimeout(() => {
              input.setSelectionRange(replaceStr.length, replaceStr.length);
              input.focus();
           }, 0);
            e.preventDefault();
         }
       } else {
         // 选中文本后,则正常删除
          newValue = inputValue;
       }
     }
     setInputValue(newValue);
   }
  };


...
...


       <Input
          className="pdf-name-rule"
          value={inputValue}
          ref={inputRef}
          placeholder="请输入pdf简历命名"
          onChange={handleInputChange}
          onKeyDown={handleKeyDown}
       />
       <div className="variable-tip">pdf简历可插入如下变量</div>
       <div className="variable-list">
         {VariableList.map((item) => (
           <div className="variable-item" key={item.value} onClick={() => handleTagClick(item)}>
             {item.label}
           </div>
         ))}
       </div>

 

标签:const,变量,删除,文本框,inputValue,input,startPos,newValue,endPos
From: https://www.cnblogs.com/shellon/p/18323682

相关文章

  • Python - 如何使用存储在类变量中的类型作为同一类方法的参数的类型提示?
    考虑下面的代码:fromtypingimportProtocol,ClassVar,AnyclassTool(Protocol):t:ClassVar#deff(self,params:self.t)->Any:#NameError:name'self'isnotdefineddeff(self,params)->Any:passclassSum:......
  • Unity学习笔记之Inspector窗口可编辑的变量
     笔记:usingSystem.Collections;usingSystem.Collections.Generic;usingUnityEngine;publicenumTypeEnum{Normal,Player}[System.Serializable]publicstructMyStruct{publicintages;publicboolsex;}[System.Serializable]publicc......
  • Nuxt.js 环境变量配置与使用
    title:Nuxt.js环境变量配置与使用date:2024/7/25updated:2024/7/25author:cmdragonexcerpt:摘要:“该文探讨了Nuxt.js框架下环境变量配置的详细过程,涉及.env文件配置、运行时访问、安全性考量、在不同场景下的实践(如Vue应用、插件、服务器路由)及多环境配置下的最佳实......
  • redis工具类封装,redis的使用方式新增修改删除等,
    publicclassRedisUtil{@ResourceprivateRedisTemplate<String,Object>redisTemplate;privateHashOperations<String,String,Object>hashOperations;publicRedisUtil(RedisTemplate<String,Object>redisTemplate){......
  • 当目标变量是比例时如何使用sklearn
    有一些预测比例的标准方法,例如逻辑回归(无阈值)和beta回归。已经对此进行了讨论:http://scikit-learn-general.narkive.com/4dSCktaM/using-logistic-regression-on-a-continuous-target-variablehttp://scikit-learn-general.narkive.com/lLVQGzyl/beta-regress......
  • 第2节课:基本数据类型与变量
    目录C++的基本数据类型整型(IntegralTypes)浮点型(Floating-PointTypes)字符型(CharacterType)布尔型(BooleanType)变量声明和初始化声明变量初始化变量变量的作用域变量的生命周期常量变量的存储类别总结C++的基本数据类型C++是一种静态类型语言,这意味着每个变量在使......
  • 算法力扣刷题记录 五十九【450.删除二叉搜索树中的节点】
    前言记录五十八【701.二叉搜索树中的插入操作】保证插的新节点在叶子节点的位置,如此实现递归。那么【450.删除二叉搜索树中的节点】删除如何实现?还有简单的方法吗?一、题目阅读给定一个二叉搜索树的根节点root和一个值key,删除二叉搜索树中的key对应的节点,并保证二......
  • 在K8S中,k8s删除pod的过程是什么?
    在Kubernetes(K8s)中,删除Pod的过程是一个涉及多个步骤和组件协作的流程。以下是K8s删除Pod的详细过程:一、连接到Kubernetes集群首先,用户或系统需要连接到Kubernetes集群。这通常通过kubectl命令行工具或其他KubernetesAPI客户端实现。kubectl是Kubernetes的官方命令行工具,用于与K......
  • 如何使用DataFrameMapper删除特定列中具有空值的行?
    我正在使用sklearn-pandas.DataFrameMapper来预处理我的数据。我不想输入特定列。如果此列是Null,我只想删除该行。有没有办法做到这一点?虽然DataFrameMapper没有内置方法来删除具有空值的行,但你可以通过在DataFrameMapper管道之前使用P......
  • shell 中设置/取消环境变量
    shell中设置/取消环境变量查看:env设置:export变量名=变量值删除:unset变量名https://blog.csdn.net/mayue_web/article/details/97023615https://www.cnblogs.com/guanbin-529/p/12977662.htmlhttps://cloud.tencent.com/developer/article/1630467https://developer.ali......