当前位置:   article > 正文

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

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

一、功能描述:

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

二、项目背景记录:

vue3+vuetify的项目

三、问题描述:

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

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

四、问题代码:

  1. <VTextField
  2. ref="refSearchInput"
  3. v-model="searchQuery"
  4. autofocus
  5. variant="plain"
  6. class="app-bar-autocomplete-box"
  7. @keyup.esc="clearSearchAndCloseDialog"
  8. @keyup.enter.native="search(true)"
  9. @keydown="getFocusOnSearchList"
  10. >
  11. ……
  12. </VTextField>

五、解决思路:

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

六、修改后的代码:

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

 成功!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/260530
推荐阅读
相关标签
  

闽ICP备14008679号