首页 > 其他分享 >js_中文输入法情况下, 输入框v-model绑定值中没有输入值但却触发input事件的问题

js_中文输入法情况下, 输入框v-model绑定值中没有输入值但却触发input事件的问题

时间:2023-08-26 21:22:40浏览次数:60  
标签:输入法 绑定 值为 js 输入框 搜索 字符串 input model

中文输入法情况下, 输入框v-model绑定值中没有输入值但却触发input事件的问题

  • 今天写的一个搜索框, 要求输入字符时不作处理, 直到用户点击搜索按钮时才执行搜索逻辑; 当用户将搜索框文本删除至空字符串时, 执行一次无搜索值的搜索逻辑, 用于将表格数据恢复至无筛选; 在这个功能上我想当然地使用了input事件用于触发输入事件, 但是被测试出bug: 当输入法是中文时, 在使用汉语时的初始选字阶段会不停地触发input事件, 但是v-model绑定的值却一直是维持在空字符串, 也就是说, 用户在使用中文选字阶段会一直执行无搜索值的搜索逻辑

  • 解决问题在于: 在input绑定值为空字符串的情况下, input事件的触发有以下三种情况:

      1. 英文输入, 此时的v-model绑定值从空字符串到字符串, e.data的输入值存在
      2. 中文选词输入, 此时的v-model绑定值为空字符串, e.data存在值;
      3. 删除: e.data值为null, v-model绑定值为空字符串
    • 判定如下:

        1. 当且仅当input事件对象的data属性为null, 且绑定值为空字符串的情况下, 才代表通过删除清空了输入框的值, 只有在这种情况下才会调用搜索.
      • // 只用于处理当字符串为空的时候
        const handleSearchValue = async function (event) {
          if (event.data === null && search_companyName.value === '') {
            curPage.value = 1
            await getCompanyList({ search_name: search_companyName.value })
          }
        }
        
      • <input
          type="text"
          class="search_input"
          placeholder="按企业名搜索"
          @keydown.enter.native.stop="searchCompanyByName"
          v-model="search_companyName"
          @input="handleSearchValue($event)"
        />
        

标签:输入法,绑定,值为,js,输入框,搜索,字符串,input,model
From: https://www.cnblogs.com/isAyi/p/17659471.html

相关文章

  • js hook技术的感想
    最新老婆准备找工作,找了一些js的面试题,有些不懂,其中有一个问啥是原型啥是原型链,直接把我问懵逼了,接触js这么多年,没有真正了解过某种用法或者技术的学名是啥。一帮所谓学者还真是取了漂亮名。为此百度了一番,大部分博客写的一般般,太过理论,我来点实际的定一个类目前有两种方式:......
  • 轻骑兵使用driver.js踩坑
    1安装哪个版本建议安装0.9.8原版。[email protected]怎么引入、使用不要提成文件,在页面里面使用就可以。vue-page.vuetemplate<el-form-itemprop="username":class="{user:isValidateUserName}"class="username"id="create-post1">...&l......
  • 2023-08-26 关于JSON.stringify会过滤调undefined值的问题 ==》在格式化之前先用type
    今天传参给后端的时候就发现了这么个问题,明明对象里面有这个字段a,但是打印出来死活没有,去掉json格式化后才发现是该值a为undefined,遂百度,故得知该值会被过滤掉。被过滤掉的原因是因为undefined值不符合JSON.stringify的规范。......
  • [JSOI2018] 潜入行动
    题目描述外星人又双叒叕要攻打地球了,外星母舰已经向地球航行!这一次,JYY已经联系好了黄金舰队,打算联合所有JSOIer抵御外星人的进攻。在黄金舰队就位之前,JYY打算事先了解外星人的进攻计划。现在,携带了监听设备的特工已经秘密潜入了外星人的母舰,准备对外星人的通信实施监听。外......
  • JSON字符串的几种格式
    1.JSON数值{“key”:value}{"key":520,"key1":1314}2.JSON字符串{“key”:“value”}{"key":"我爱你","key1":"一生一世"}3.JSON数组{“key”:[value]}{"key":[520,1314]......
  • js 下载流调用浏览器预览 的方法
    //文件预览js下载流调用浏览器预览的方法var$viewblob=function(url,data){constconfig={responseType:'blob',timeout:9999999};$http(url,data,config).then(res=>{constfileRes=res;lettype={type:'application/octet-stream......
  • 报错ValueError: Can't find 'adapter_config.json'
    前言在做组内2030项目时,我具体做的一个工作是对大模型进行LoRA微调,在整个过程中有许多坑,其中有些值得记录的问题,于是便产生了这篇博客。问题我在得到微调好的模型后,需要对模型进行性能测评。在加载模型时,遇到如下报错ValueError:Can'tfind'adapter_config.json'补充:报错......
  • 深入了解Webpack:特性、特点和结合JS混淆加密的实例
    Webpack是现代前端开发中最受欢迎的构建工具之一,其强大的特性和灵活性使得开发者能够更有效地管理和优化项目资源。在本文中,我们将深入探讨Webpack的特性和特点,并结合实例演示如何使用Webpack与JS混淆加密相结合。Webpack的特性和特点1.模块化管理Webpack支持将项目拆分为多个模块......
  • SQLite 3.43 发布,JSON 处理性能提升 2 倍
    SQLite3.43发布,JSON处理性能提升2倍来源:OSCHINA编辑: 局2023-08-2516:58:59 38月26日「源创会」北京站,聊聊AI大模型与底层技术>>> SQLite3.43已正式发布。SQLite是一个C语言库,实现了一个小型、快速、独立、高可靠性、全功能的SQL数据库......
  • js对象操作(object)
    声明对象varcan_args=newObject();对象赋值can_args={"vue":300,"jquery":200……};对象动态赋值(新建属性值)第一种:letkey="id";letvalue=2can_args[key]=value;console.error(can_args);//{"vue":300,"jquery":200,......