首页 > 其他分享 >vue 输入框maxlength不影响拼音输入

vue 输入框maxlength不影响拼音输入

时间:2024-05-23 11:09:37浏览次数:16  
标签:vue default text value 输入框 拼音输入 maxlength event

直接设置 input 的 maxlength 会导致最后几个字无法用拼音输入,比如最大长度还剩两个字,我想输入'项目',当我拼音输入'xi'之后,后面的'angmu'是打不出的。

可以不设置 maxlength,而是用 this.$nextTick(() => {}) 在用户输入完之后,裁剪文字

<template>
  <view class="input-view">
    <u-input v-model="value" type="textarea" :border="false" :clearable="false" :maxlength="9999"
      @input="handleInput" />
    <view class="tip-view">{{ tipText }}</view>
  </view>
</template>

<script>
export default {
  props: {
    text: {
      type: String,
      default: ''
    },
    maxlength: {
      type: [String, Number],
      default: 5
    }
  },
  data () {
    return {
      value: '',
    };
  },
  computed: {
    tipText () {
      return `${this.value.length || 0}/${this.maxlength}`;
    }
  },
  watch: {
    text: {
      handler (val) {
        this.value = val
      },
      immediate: true
    }
  },
  methods: {
    handleInput (event) {
      // 直接给input设maxlength输入拼音的时候有影响
      if (event.length > Number(this.maxlength)) {
        this.$nextTick(() => {
          this.value = event.substring(0, this.maxlength);
          this.$emit('update:text', this.value)
        });
      } else {
        this.$emit('update:text', event)
      }
    }
  }
};
</script>
<style scoped lang="scss">
.input-view {
  .tip-view {
    margin-top: 20rpx;
    text-align: right;
  }
}
</style>

 

使用的时候

<template>
  <view class="input-view">
    <LYFInput :text.sync="text" />
  </view>
</template>

<script>
export default {
  components: {
    LYFInput
  },
  data () {
    return {
      text: 'abc',
    };
  }
}
</script>

 

标签:vue,default,text,value,输入框,拼音输入,maxlength,event
From: https://www.cnblogs.com/liuyongfa/p/18207919

相关文章

  • Vue搭建移动端h5项目(已开源,附带git地址)Vant+Vue Router+Vuex+axios封装+案例交互+部分
    一、项目介绍以及项目地址             项目介绍:vue2搭建。项目通过amfe-flexible与postcss-pxtorem实现移动端适配;通过Vantui作为项目的组件库;通过Vuex管理数据状态,进行模块化管理;通过VueRouter配置项目路由,进行模块化管理;封装axios进行数据的请求,以及一些页......
  • Electron-Vue3-Vadmin后台系统|vite2+electron桌面端权限管理系统
    Electron-Vue3-Vadmin后台系统|vite2electron桌面上端管理权限智能管理系统根据vite2.xelectron12桌面上端后台管理智能管理系统Vite2ElectronVAdmin。继上一次共享vite2融合electron构建后台框架,此次产生的是全新开发设计的跨桌面上中后台管理管理权限智能管理系统。应用全新......
  • 封装 ECharts 为 Vue 组件:X-ECharts 简介
    ECharts是一个广泛使用的开源可视化库,它提供了丰富的图表类型和灵活的配置选项,适用于复杂的数据可视化需求。而X-ECharts是一个基于ECharts封装的Vue组件库,旨在提供更简洁的集成方式,同时兼容Vue2和Vue3,使得开发者能够在不同版本的Vue项目中无缝使用ECharts。Eng......
  • Performance选项卡笔记以及分析vue页面卡顿
    各区域内容说明Performance选项卡可以用于分析页面性能。最上方红框区域内出现红色块的代表该时间段帧率不足60帧。往下是cpu占用率。卡顿原因主要耗时根据以下该图进行分析。问题分析由此可见本次分析主要导致卡顿的原因是因为js的执行所导致的。可以选择时间区域进一......
  • vue项目的简单搭建,vue init 和 vue create 的区别
    本文基于:[email protected]@2.5.2vuecreate和init的区别是vue-cli3.x的初始化方式,目前模板是固定的,模板选项可自由配置,创建出来的是vue-cli3的项目,与cue-cli2项目结构不同,配置方法不同,具体配置方法参考官方文档。vuecreatedemo 使用create命令搭建vueinit是vue-c......
  • 离线文档(vue/react/element/element-plus/ands vue等等)
    特殊环境需要离线状态文档的请参考这里 可以在你所想要的东西在github的官方项目上找一个名字包含‘gh-page’或者‘get-page’的分支下载下来然后本地win+Rcmd输入npminstallsgo-g全局下载sgo之后在你下载下来的文件夹根目录cmd打开终端输入sgo--fallindex.html......
  • vue3 Cesium添加地形的办法
    Cesium自带有地形,awaitCesium.createWorldTerrainAsync({    requestVertexNormals:true,    requestWaterMask:true    });async需要自己添加在方法前面然后在newCesium.Viewer("map",{terrainProvider:provider})provide中,第一个......
  • vue搭建脚手架 出现问题Command vue init requires a global addon to be installed.
    使用vue-cli脚手架命令vueinitwebpackmy-App创建项目回车时显示Commandvueinitrequiresa global addontobeinstalled.Pleaserun yarn globaladd@vue/cli-initandtryagain. 解决方法:npminstall-g@vue/cli-init 然后创建项目,正常。 ......
  • vue2播放海康视频,利用海康H5player
    一、H5视频播放器开发包地址1、https://open.hikvision.com/download/5c67f1e2f05948198c909700?type=20 2、内容 3、主要用demo里面的文件 4、demo可以用来测试获取的视频流是不是可以播放,如果用vue开发过,应该有安装的node,在当前页面右键-->在终端中打开 (1)两者的......
  • 关于vue-baidu-map的一些记录
    这一阶段主要的内容是负责编写和百度地图相关的信息。(写到我想吐)仿照导航的页面效果。1.使用说明这里使用的是vue-baidu-map相关组件,这里我就不去说明如何去安装他们了,我们直接向下看。vue-baidu-map的操作手册的网址:VueBaiduMap(dafrok.github.io)。当然我这里介绍的那些只......