VUE 直接通过JS 修改html对象的值导致没有更新到数据中解决方法分析


Posted in Javascript onDecember 02, 2019

本文实例讲述了VUE 直接通过JS 修改html对象的值导致没有更新到数据中解决方法。分享给大家供大家参考,具体如下:

业务场景

我们在使用vue 编写 代码时,我们有一个 多行文本框控件,希望在页面点击一个按钮 在 文本框焦点位置插入一个 {pk}的数据。

发现插入 这个数据后,这个数据并没有同步到 数据中,但是直接通过键盘输入,就可以改变数据。

原因分析

在通过 JS 修改控件的value 数据后,并没有触发到数据更新。

解决办法

Vue.component('rx-textarea', {
 props: {
  value:[String,Number],
  cols: {
   type: Number,
   default: 60
  },
  rows: {
   type: Number,
   default: 4
  }
 },
 data() {
  return {
   curVal:this.value
  }
 },
 template: "<div><textarea class='rx-textarea' v-model='curVal' @focus='focus(event)' :cols='cols' :rows='rows' @blur='change(event)' ></textarea></div>",
 methods:{
  change:function(e){
   this.$emit('input', e.target.value);
  },
  focus:function(e){
   this.$emit('myfocus', e);
  }
 },
 watch: {
  curVal: function (val, oldVal){
   this.$emit('input', this.curVal);
  },
  value :function(val,oldVal){
   if(val!=oldVal){
    this.curVal=this.value;
   }
  }
 }
})

当文本框获取焦点时,我们发布一个 myfocus 控件,我们在使用这个控件的时候。

<rx-textarea @myfocus="getTextarea" v-model="item.sql"></rx-textarea>

编写一个 getTextarea 的方法。

var curTextarea=null;
function getTextarea(e){
 curTextarea= e.target;
}

这里将文本框控件,抛出来,我们可以通过 js代码修改这个控件的value。

function insertPK(){
 $.insertText(curTextarea,"{pk}")
}

通过这个代码我们往焦点处插入我们的代码。

当文本框失去焦点时,将当前控件的值作为 input 事件进行发布,从而实现了数据的同步。

希望本文所述对大家vue.js程序设计有所帮助。

Javascript 相关文章推荐
JavaScipt中的Math.ceil() 、Math.floor() 、Math.round() 三个函数的理解
Apr 29 Javascript
jquery必须知道的一些常用特效方法及使用示例(整理)
Jun 24 Javascript
使用pjax实现无刷新更改页面url
Feb 05 Javascript
js实现鼠标触发图片抖动效果的方法
Feb 27 Javascript
jQuery实现可用于博客的动态滑动菜单
Mar 09 Javascript
基于jquery实现一个滚动的分步注册向导-附源码
Aug 26 Javascript
图片懒加载插件实例分享(含解析)
Jan 09 Javascript
Bootstrap fileinput文件上传组件使用详解
Jun 06 Javascript
Sublime Text新建.vue模板并高亮(图文教程)
Oct 26 Javascript
命令行批量截图Node脚本示例代码
Jan 25 Javascript
详解Jest结合Vue-test-utils使用的初步实践
Jun 27 Javascript
JavaScript复制变量三种方法实例详解
Jan 09 Javascript
vue 动态表单开发方法案例详解
Dec 02 #Javascript
vue 开发之路由配置方法详解
Dec 02 #Javascript
vue 开发企业微信整合案例分析
Dec 02 #Javascript
vue 使用外部JS与调用原生API操作示例
Dec 02 #Javascript
node使用mysql获取数据库数据中文乱码问题的解决
Dec 02 #Javascript
vue中上传视频或图片或图片和文字一起到后端的解决方法
Dec 01 #Javascript
angular8和ngrx8结合使用的步骤介绍
Dec 01 #Javascript
You might like
PHP制作登录异常ip检测功能的实例代码
2016/11/16 PHP
JS+PHP实现用户输入数字后显示最大的值及所在位置
2017/06/19 PHP
PHP中abstract(抽象)、final(最终)和static(静态)原理与用法详解
2020/06/05 PHP
jquery中:input和input的区别分析
2011/07/13 Javascript
js操纵dom生成下拉列表框的方法
2014/02/24 Javascript
微信支付如何实现内置浏览器的H5页面支付
2015/09/25 Javascript
JavaScript判断图片是否已经加载完毕的方法汇总
2016/02/05 Javascript
jQuery 判断元素整理汇总
2017/02/28 Javascript
JS实现AES加密并与PHP互通的方法分析
2017/04/19 Javascript
微信小程序实现简单input正则表达式验证功能示例
2017/11/30 Javascript
基于casperjs和resemble.js实现一个像素对比服务详解
2018/01/10 Javascript
详解jQuery-each()方法
2019/03/13 jQuery
聊聊Vue中provide/inject的应用详解
2019/11/10 Javascript
JavaScript常用工具函数库汇总
2020/09/17 Javascript
[49:13]DOTA2上海特级锦标赛C组资格赛#1 OG VS LGD第一局
2016/02/27 DOTA
在Django框架中编写Context处理器的方法
2015/07/20 Python
python中urlparse模块介绍与使用示例
2017/11/19 Python
tensorflow实现KNN识别MNIST
2018/03/12 Python
python使用matplotlib绘制热图
2018/11/07 Python
Python 使用list和tuple+条件判断详解
2019/07/30 Python
Python坐标轴操作及设置代码实例
2020/06/04 Python
VIVOBAREFOOT赤脚鞋:让您的脚做自然的事情
2017/06/01 全球购物
泰国第一的化妆品网站:Konvy
2018/02/25 全球购物
Farnell德国:电子元器件供应商
2018/07/10 全球购物
Omio葡萄牙:全欧洲低价大巴、火车和航班搜索和比价
2019/02/09 全球购物
学生党员思想汇报范文
2014/01/09 职场文书
珍珠奶茶店创业计划书
2014/01/11 职场文书
大学生个人自荐信样本
2014/03/02 职场文书
团队经理竞聘书
2014/03/31 职场文书
银行竞聘演讲稿范文
2014/04/23 职场文书
妇联领导班子剖析材料
2014/08/21 职场文书
科长个人四风问题整改措施思想汇报
2014/10/13 职场文书
拾金不昧表扬稿
2015/01/16 职场文书
教代会开幕词
2015/01/28 职场文书
社区扶贫帮困工作总结
2015/05/20 职场文书
团拜会主持词
2015/07/04 职场文书