当前位置: 首页 > article >正文

Mac中文输入法区分回车和提交

一、功能描述:

在搜索框中输入关键词,回车跳转至搜索结果页

二、项目背景记录:

vue3+vuetify的项目

三、问题描述:

中文输入法。
在Windows下输入拼音后,敲击空格 => 显示第一个联想词,敲击回车 => 拼音显示在搜索框中,再敲击回车 => 跳转搜索结果页。
在Mac浏览器中,敲击空格 => 显示第一个联想词,敲击回车 => 跳转到搜索结果页

很明显,Mac中不符合我们平时的输入习惯。

四、问题代码:

<VTextField
  ref="refSearchInput"
  v-model="searchQuery"
  autofocus
  variant="plain"
  class="app-bar-autocomplete-box"
  @keyup.esc="clearSearchAndCloseDialog"
  @keyup.enter.native="search(true)"
  @keydown="getFocusOnSearchList"
>
  ……
</VTextField>

五、解决思路:

1. 最开始想到的就是阻止默认事件,但是逻辑上行不通,而且实际操作后发现确实行不通
2. 网上简单查了下,event有个属性可以使用——isComposing,而且这个属性只有在keydown事件中会有所区别。

六、修改后的代码:

<!-- template -->
<VTextField
  ref="refSearchInput"
  v-model="searchQuery"
  autofocus
  variant="plain"
  class="app-bar-autocomplete-box"
  @keyup.esc="clearSearchAndCloseDialog"
  @keydown="getFocusOnSearchList($event,true)"
>
  ……
</VTextField>
// script
const getFocusOnSearchList = (e, hideHistory) => {
  ……
  // 判断是否是enter,以及处理mac中,中文输入法回车问题
  if(e.key === 'Enter' && !e.isComposing) {
    search(e, hideHistory)
  }
}

 成功!


http://www.kler.cn/a/271844.html

相关文章:

  • DVWA 靶场搭建
  • 如何使用ArcGIS Pro生成带计曲线等高线
  • html5cssjs代码 014 布局框架
  • 数据结构——栈和队列的表示与实现详解
  • Querywrapper与Lambdaquerywrappe比较
  • ConnectedComponents类
  • [论文精读]Dynamic Coarse-to-Fine Learning for Oriented Tiny Object Detection
  • 【小沐学AI】数据分析的Python库:Pandas AI
  • vite ts vue 项目提示 . Projects must list all files or use an include pattern.
  • WebServer -- 八股(终章)
  • MySQL数据库操作学习(2)表查询
  • 腾讯云企业用户可以申请免费服务器试用吗?
  • ssh 下连接Mysql 查看数据库数据表的内容的方法及步骤
  • MyBatisPlus 之二:SpringBoot 快速整合 MyBatisPlus 详细步骤
  • mysql 存储过程 每天凌晨 定时执行任务(存储过程)
  • 【Docker】Prometheus 容器部署及应用
  • SpringCloudGateway之限流集成篇
  • 代码随想录day23(2)二叉树:从中序与后序遍历序列构造二叉树(leetcode106)
  • 【教学类-34-10】20240313 春天拼图(Midjounery生成线描图,4*4格拼图块)(AI对话大师)
  • 【深度学习模型移植】用torch普通算子组合替代torch.einsum方法