vue中如何实时修改输入的值

经常看到需要对用户输入的值进行实时修改,有时是需要修改为指定的展示内容,有时候是用来校验,禁止用户输入非法数据,总之是一个常见的需求吧,只是自己一直没有特意去关注。思来想去还是有必要了解一下。

操作方法

一直听说各种方式,记得最深的便是利用computed的计算属性,通过setget 来进行修改,其他的也有所见闻。先实现一种,再进行其他其他深究,以及使用好坏。

vue文档说明 对于需要使用输入法 (如中文、日文、韩文等) 的语言,你会发现 v-model 不会在输入法组合文字过程中得到更新。如果你也想处理这个过程,请使用 input 事件。

需要分两种形式,一种是原生,一种是基于组件,假设需求为输入数字,同时四位一个空格,类似输入银行卡号

  • 原生

    使用 v-model 进行数据绑定

// template
<input v-model="value" type="text" @input="setValue($event.target)">
// js
data () {return {value: ''}
}setValue (target) {// 输入的数据进行初始化,将非数字的替换为空const val = target.value.toString().replace(/[^0-9]/ig,"")// 重新赋值this.value = v.replace(/(\d{4})(?=\d)/g, '$1 ')
}

不适用 v-model 进行数据绑定

// template
<input type="text" @input=""></input>
// js
data () {return {form {accout: ''}}
}
setValueNotWidthVModel (target) {const v = target.value.toString().replace(/[^0-9]/ig,"")// 此处是获取数据的地方this.form.accout = v.replace(/\s/g, '')// 此处是页面进行显示target.value = v.replace(/(\d{4})(?=\d)/g, '$1 ')
}

  • 组件方式
    组件都是对原始input进行额外处理了一层
<!-- template -->
// element-ui
<el-input v-model="form.accout" @input="changeInputValue"></el-input>
// iview
<Input v-model="form.accout" @input="changeInputValue" />
<!-- js -->
data () {return {form: {account: '0'}}
}
// 由于是组件,返回值 v 直接是value ,无法传参,或者`$event`
changeInputValue (v) {const v = val.toString().replace(/[^0-9]/ig,"")// 需要延迟一下,对值进行设置 // https://github.com/ElemeFE/element/blob/dev/packages/input/src/input.vue 可以看到设置原始值时,使用 this.$nextTick()this.$nextTick(() => {// https://segmentfault.com/q/1010000009840451/a-1020000010449110this.form.accout = v.replace(/(\d{4})(?=\d)/g, '$1 ')})
}

总结

  • 依旧不知道使用computed是如何实现的,上述方法,通过input时间,便可以一直拿到值,不用额外进行处理,因为v-model进行了绑定

转载于:https://www.cnblogs.com/sinosaurus/p/10963526.html

vue中如何实时修改输入的值相关推荐

  1. vue中怎么点击修改文字_vue中如何实时修改输入的值

    vue中如何实时修改输入的值 经常看到需要对用户输入的值进行实时修改,有时是需要修改为指定的展示内容,有时候是用来校验,禁止用户输入非法数据,总之是一个常见的需求吧,只是自己一直没有特意去关注.思来想 ...

  2. 在vue中使用vuex,修改state的值示例

    1. 安装 vuex npm install vuex -S 2.在目录下创建store文件 3. 在store.js编辑一个修改state的方法 然后在mian.js中全局引入 最后在组件中使用 这 ...

  3. Vue中实现输入框Input输入格式限制

    Vue中实现输入框Input输入格式限制 1.使用修饰符实现数字输入 在VUE中可以在v-modal后添加修饰符的形式来限制输入,比如: <input v-model.number=" ...

  4. 修改list中对象的值_怎样在S7-200 SMART中监控和修改变量的值?

    我们知道在S7-300 PLC编程调试的时候,可以通过在Step7的变量表中监视和修改变量.那么在S7-200 SMART编程调试的时候,如果我们希望监控某个变量的值或者对其进行修改,应如何做呢?今天 ...

  5. vue 中监听document.body.scrollTop 值总为0的解决方法

    // 基础资料 网页正文全文高: document.body.scrollHeight; 网页被卷去的高: document.body.scrollTop; scrollTop 设置或获取位于对象最顶 ...

  6. vue中单选框设置默认选中值

    vue中单选框的默认选中不同于传统方式设置checked,是通过在data中设置vulue来实现的 html部分是通过v-for取的后台的数据 <li v-for="(value,i) ...

  7. SpringBoot打成jar包cmd中运行时修改配置文件的值

    场景 若依前后端分离版手把手教你本地搭建环境并运行项目: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/108465662 在上面 ...

  8. 如何获得onblur中的值_使用带有onBlur的输入字段和来自Reactjs JSX中的状态块输入的值?...

    我做了一个小提琴来显示问题:http : //jsfiddle.net/4TpnG/582/ 当您有一个连接了onBlur的输入框以及状态的初始值时,键盘输入将被阻止.附加onChange后,它可以正 ...

  9. VUE中自定义一个获取输入车牌号码组件

    VUE自定义一个组件来选择输入车牌号码 展示样式: 组件事件列表: 事件名称 event 获取车牌 @carNum 返回参数是个数组,每个车牌元素 上代码: <template><d ...

最新文章

  1. Ubuntu下安装realtek的rtl8188eu网卡芯片驱动
  2. python开源人脸识别库识别率达99_Python的开源人脸识别库:离线识别率高达99.38%...
  3. 点到点链路上的ospf
  4. MyBatisPlus中使用 @TableField完成字段自动填充
  5. 我在大学主修计算机 英语,托福雅思英语: 我在大学主修计算机
  6. P1063-能量项链【区间dp】
  7. websocket使用
  8. Java技术学习心得
  9. 阿里云定时任务并自动释放
  10. java中怎么获取配置文件的值_java如何获取配置文件的值
  11. 消息队列一直建立tcp连接_云架构那些事儿:为什么我的TCP连接建立异常?
  12. LeetCode(620)——有趣的电影(MySQL)
  13. [转载] 用python写的一个简单的记事本
  14. 今日BIM—中交一公院发布道路专用BIM设计软件
  15. icon 做成html形式,CSS icon的各种做法
  16. 上海交通大学教授金耀辉:AI在智慧法院中的应用
  17. ndows 内存诊断工具,Windows10自带内存检测工具的使用方法
  18. 数据库课程大作业——数据分析与数据管理系统实践
  19. centos 下mono安装
  20. 小荷才露尖尖角之struts的秘密

热门文章

  1. DFXCGBFCBFDBSRFHDSG
  2. 如何用EXCEL公式复现 列序号数列:A,B,C,,,Z,AA,AZ,,, ?多方法
  3. excel合并单元格后 拉序号
  4. centos7服务器修改密码,centos7 修改root密码方式
  5. css tr标签自动换行,HTML中table设置td标签内容过多自动换行
  6. Vue中使用Ueditor
  7. linux文件夹打开闪退,win10系统内置的Linux Bash启动闪退的解决方法
  8. 3D透视投影矩阵推导,内含推导细节
  9. 2009全民健身日全国青少年攀岩赛(杭州站)开始报名!
  10. ios mailto:// 用邮箱发邮件_英雄联盟手游公测,安卓/苹果iOS注册最新下载安装教程!...