v-model只是一种语法糖,底层的方法还是去监听input事件。所以可以使用dispatchEvent事件给元素分配一个input事件,这样可以手动触发 inputElement 的 input 事件,同时可以触发 v-model 机制。IE 好像不支持(但可以 polyfill)。

el.value(newval)

el.dispatchEvent(new Event('input'));

el为input元素

解决!

PS:

如果v-model有lazy修饰符的时候,触发得是change事件

el.dispatchEvent(new Event('change'));

小例子:

<el-col :span="12" v-for="(subitem,index) in item" :key="'content'+index">
  <div v-else>
    <div @click="uploadPreFun(subitem.field_name)">
      <input v-show="false" type="text" :id="subitem.field_name" v-model="subitem.field_value">
      <span class="down-icon" v-show="subitem.field_value!=''" @click="downFile(subitem.field_value)">下载</span>
        <el-upload
          class="upload-container"
          drag
          action="/api/vat/api/upload_file/"
          accept=".txt,.xls,.xlsx,.csv"
          multiple
           :on-success="filesUploadSuccess"
          :headers="{'X-CSRFToken': csrftoken}"
          :limit="1">
            <div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
            <img src="../image/已上传.png" alt="">
        </el-upload>
    </div>
  </div>
</el-col>
 
uploadPreFun(refname) {
  this.refname = refname;
},
async filesUploadSuccess(response, file, fileList) {
  let el = document.getElementById(this.refname)
  el.value = response.data.file;
  el.dispatchEvent(new Event('input'));
}
 
该方法将element上传组件成功后修改了input,触发了input中的v-model,修改了数组里的对应数据。将上传组件和数据关联了起来!!!
 

Js修改input值后怎么同步修改绑定的v-model值的更多相关文章

  1. 修改主机名后VCS的修改

    转:https://blog.csdn.net/nauwzj/article/details/6733135 一. 单机改主机名需更改以下文件: /etc/hosts /etc/hostname.hm ...

  2. 使用<label>标签修改input[type="checkbox"]的样式

    因为<label>的特性有两点 : ①不呈现任何效果, ②用户点击该标签, 浏览器能自动将焦点转移到相关的表单控件上. <form> <input type=" ...

  3. tween.js是一款可生成平滑动画效果的js动画库。tween.js允许你以平滑的方式修改元素的属性值。它可以通过设置生成各种类似CSS3的动画效果。

    简要教程 tween.js是一款可生成平滑动画效果的js动画库.相关的动画库插件还有:snabbt.js 强大的jQuery动画库插件和Tweene-超级强大的jQuery动画代理插件. tween. ...

  4. js修改input的type属性问题

    js修改input的type属性有些限制.当input元素还未插入文档流之前,是可以修改它的值的,在ie和ff下都没问题.但如果input已经存在于页面,其type属性在ie下就成了只读属性了,不可以 ...

  5. js获取子节点和修改input的文本框内容

    js获取子节点和修改input的文本框内容 js获取子节点: $("#"+defaultPVItemId).children().eq(3); //获取某个选择器下的第四个子节点 ...

  6. vue修改对象的属性值后页面不重新渲染

    原文地址:vue修改对象的属性值后页面不重新渲染 最近项目在使用vue,遇到几次修改了对象的属性后,页面并不重新渲染,场景如下: HTML页面如下: [html] view plain copy &l ...

  7. selenium web driver 使用JS修改input属性

    selenium获取input时候,发现type=”hidden” 的input无法修改value,经牛人指点,可以使用js修改 首先html源文件如下,设置为text .hidden.submit ...

  8. 修改input的text 通过jquery的html获取值 未变化

    修改input的text 通过jquery的html获取值 未变化扩展一个方法 ,通过formhtml()来取代html() (function ($) { var oldHTML = $.fn.ht ...

  9. VUE项目中使用this.$forceUpdate();解决页面v-for中修改item属性值后页面v-if不改变的问题

    VUE项目中使用this.$forceUpdate();解决页面v-for中修改item属性值后页面v-if不改变的问题:https://blog.csdn.net/jerrica/article/d ...

随机推荐

  1. Python自学:第三章 弹出列表中任何位置处的元素

    motorcycles = ["honda", "yamaha", "suzuki"] first_owned = motorcycles. ...

  2. 自己封装的一个类似axios的请求

    下载:https://pan.baidu.com/s/1k0-CpGGtfDTsCm85NMfuHA 使用: axios({ method:'post', baseURL:baseAddress, u ...

  3. 【PHP函数】PHP 去掉字符串中的转义符号

    PHP字符串中的转义符号 string stripslashes ( string $str ) //去掉字符串中的反斜线字符.若是连续二个反斜线,则去掉一个,留下一个.若只有一个反斜线,就直接去掉.

  4. helm一键 安装mariadb-ha(详细)

    一. 二.单机安装一主一从 先创建对应pv https://github.com/helm/charts/blob/master/stable/mariadb/templates/master-sta ...

  5. 不同浏览器中scrollHeight的比较

    每个浏览器的兼容性不同所以就有了如下判断方案 document.body是DOM中Document对象里的body节点, document.documentElement是文档对象根节点(html)的 ...

  6. java Data、String、Long三种日期类型之间的相互转换

    java Data.String.Long三种日期类型之间的相互转换      // date类型转换为String类型   // formatType格式为yyyy-MM-dd HH:mm:ss// ...

  7. js 获取二级域名

    js获取页面完整地址: window.location.href; var s =" https://ejym.baidu.com";            var h = s.s ...

  8. python(元组,不可修改序列)

    元组也是序列,区别于列表,它不可更改,语法简单只要加逗号隔开即可 1.1,2,3 (1,2,3) 2.42, (42,) 3.3*(40+2) 126 3*(40+2,) (42,42,42) 4.x ...

  9. java字符串根据正则表达式让单词首字母大写

    public class Da { public static void main(String[] args) { String s = "hello_*java_*world" ...

  10. Linux c codeblock的使用(二):在工程中编译多个文件

    (一)前言 我们刚开始学习linux c的时候,一般都是在一个c文件里面写完所有程序,然后用gcc编译这个c文件就好了,十分简单. 但是你有没有想过,如果我们希望将不同模块的代码放到不同的c文件,然后 ...